Все хранилища данных, которые выведены из пользовательских классов datastore, совместно используют некоторые общие поведения. Эта процедура тестирования предоставляет инструкции, чтобы протестировать минимальный набор поведений и функциональностей, которые должны иметь все пользовательские хранилища данных. Вам будут нужны дополнительные тесты, чтобы квалифицировать любую уникальную функциональность вашего пользовательского datastore.
Если вы разработали свой пользовательский datastore на основе инструкций в, Разрабатывают Пользовательский Datastore, то следуют за этими процедурами тестирования, чтобы квалифицировать ваш пользовательский datastore. Сначала выполните модульные тесты, сопровождаемые тестами рабочего процесса:
Модульные тесты квалифицируют конструктора datastore и методы.
Тесты рабочего процесса квалифицируют использование datastore.
Для всех этих тестов:
Если не задано в тестовом описании, примите, что вы тестируете непустой datastore ds.
Проверьте тесты на расширениях файла, кодировке файла и местоположениях данных (как Hadoop®), который ваш пользовательский datastore спроектирован, чтобы поддержать.
Инструкции по модульному тесту для конструктора datastore следующие.
| Описание теста | Ожидаемый Выход |
|---|---|
|
Проверяйте, работает ли ваш пользовательский конструктор datastore с минимальными необходимыми входными параметрами. |
Объект Datastore вашего пользовательского типа хранилища данных с минимальными ожидаемыми свойствами и методами |
|
Проверяйте если ваш объект Запустите эту команду: isa(ds,'matlab.io.Datastore') |
1 |
|
Вызовите своего пользовательского конструктора datastore с необходимыми входными параметрами и любыми поддерживаемыми входными параметрами и аргументами пары "имя-значение". |
Объект Datastore вашего пользовательского типа хранилища данных с минимальными ожидаемыми свойствами и методами |
readИнструкции по модульному тесту для read метод
| Описание теста | Ожидаемый Выход |
|---|---|
|
Вызовите t = read(ds); |
Данные с начала datastore Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
|
Вызовите t = read(ds); |
Данные, начинающие с конечной точки предыдущей операции чтения Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
|
Продолжите вызывать while(hasdata(ds)) t = read(ds); end |
Никакие ошибки Правильные данные в правильном формате |
|
Когда данные будут доступны в чтение, проверяйте Вызовите объект [t,info] = read(ds); |
Никакая ошибка
|
|
Когда больше данных не будет доступно в чтение, вызовите |
Или ожидаемый выход или сообщение об ошибке на основе вашей пользовательской реализации datastore. |
readallИнструкции по модульному тесту для readall метод
| Описание теста | Ожидаемый Выход |
|---|---|
|
Вызовите |
Все данные |
|
Вызовите Читайте из datastore до while(hasdata(ds)) t = read(ds); end readall(ds) |
Все данные |
hasdataИнструкции по модульному тесту для hasdata метод
| Описание теста | Ожидаемый Выход |
|---|---|
|
Вызовите |
|
|
Вызовите |
|
|
Когда больше данных будет доступно в чтение, вызовите |
|
|
Когда больше данных не будет доступно в чтение, вызовите |
|
resetИнструкции по модульному тесту для reset метод
| Описание теста | Ожидаемый Выход |
|---|---|
|
Вызовите Проверьте что
reset(ds); t = read(ds); |
Никакие ошибки
Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
|
Когда больше данных будет доступно в чтение, вызовите Проверьте что |
Никакие ошибки
Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
|
Когда больше данных будет доступно в чтение, вызовите Проверьте что |
Никакие ошибки
Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
|
Когда больше данных не будет доступно в чтение, вызовите Проверьте тот |
Никакие ошибки
Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
progressИнструкции по модульному тесту для progress метод
| Описание теста | Ожидаемый Выход |
|---|---|
|
Вызовите |
0 |
|
Вызовите
readall(ds); progress(ds) |
0 |
|
Вызовите |
Часть между |
|
Вызовите |
1 |
previewИнструкции по модульному тесту для preview метод
| Описание теста | Ожидаемый Выход |
|---|---|
|
Вызовите |
|
|
Вызовите |
|
|
Вызовите |
|
|
Вызовите |
|
|
Вызовите |
|
|
Вызовите |
Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
|
Вызовите |
|
|
В то время как datastore имеет доступные данные, чтобы читать, вызовите |
|
partitionИнструкции по модульному тесту для partition метод
| Описание теста | Ожидаемый Выход |
|---|---|
|
Вызовите Вызовите subds = partition(ds,n,index) read(subds) Проверьте, что раздел допустим. isequal(properties(ds),properties(subds)) isequal(methods(ds),methods(subds)) |
Возвращенный раздел Разделенный datastore
Вызов Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
|
Вызовите Проверьте данные, возвращенные путем вызова subds = partition(ds,1,1) isequal(properties(ds),properties(subds)) isequal(methods(ds),methods(subds)) isequaln(read(subds),read(ds)) isequaln(preview(subds),preview(ds)) |
Раздел Раздел
|
|
Вызовите | Повторное разделение раздела datastore должно работать без ошибок. |
initializeDatastoreЕсли ваш datastore наследовался matlab.io.datastore.HadoopFileBased, затем проверьте поведение initializeDatastore использование инструкций в этой таблице.
| Описание теста | Ожидаемый Выход |
|---|---|
|
Вызовите
Например, инициализируйте info = struct('FileName','myFileName.ext',... 'Offset',0,'Size',500) initializeDatastore(ds,info) Проверьте инициализацию путем исследования свойств объекта datastore. ds |
|
getLocationЕсли ваш datastore наследовался matlab.io.datastore.HadoopFileBased, затем проверьте поведение getLocation использование этих инструкций.
| Описание теста | Ожидаемый Выход |
|---|---|
|
Вызовите location = getLocation(ds) На основе вашей пользовательской реализации datastore,
Если resolve(location) |
|
isfullfileЕсли ваш datastore наследовался matlab.io.datastore.HadoopFileBased, затем проверьте поведение isfullfile использование этих инструкций.
| Описание теста | Ожидаемый Выход |
|---|---|
|
Вызовите |
На основе вашей пользовательской реализации datastore, |
Проверьте свои тесты рабочего процесса в соответствующей среде.
Если ваш datastore наследовался только matlab.io.Datastore, затем проверьте все тесты рабочего процесса на локальном сеансе MATLAB®.
Если ваш datastore имеет поддержку параллельной обработки (наследовался matlab.io.datastore.Partitionable), затем проверьте свои тесты рабочего процесса в параллельных средах выполнения, таких как Parallel Computing Toolbox™ и MATLAB Parallel Server™.
Если ваш datastore сделал, чтобы Hadoop поддержал (наследовался matlab.io.datastore.HadoopFileBased), затем проверьте свои тесты рабочего процесса в кластере Hadoop.
Тестирование инструкций для tall рабочий процесс
| Описание теста | Ожидаемый Выход |
|---|---|
|
Создайте длинный массив путем вызова t = tall(ds) |
|
|
Для этого тестового шага создайте объект datastore с данными, которые помещаются в вашу системную память. Затем создайте длинный массив с помощью этого объекта datastore. t = tall(ds) Если ваши данные являются числовыми, то примените соответствующую функцию как Если ваши данные имеют тип данных Примените Для примеров смотрите Рабочий процесс Больших данных с использованием высоких массивов и хранилищ данных (Parallel Computing Toolbox). |
Никакие ошибки Функция возвращает выходной параметр правильного типа данных (не Функция возвращает тот же результат, применяется ли это к |
Тестирование инструкций для рабочего процесса MapReduce
| Описание теста | Ожидаемый Выход |
|---|---|
|
Вызовите outds = mapreduce(ds,@mapper,@reducer) mapreduce.
Поддерживать использование |
Никакая ошибка Операция MapReduce возвращает ожидаемый результат |
Эта процедура тестирования предоставляет инструкции, чтобы протестировать минимальный набор поведений и функциональностей для пользовательских хранилищ данных. Дополнительные тесты необходимы, чтобы квалифицировать любую уникальную функциональность вашего пользовательского datastore.
После того, как вы завершите реализацию и валидацию вашего пользовательского datastore, ваш пользовательский datastore готов использовать.
Чтобы добавить справку для вашей пользовательской реализации datastore, смотрите, Создают Справку для Классов.
Чтобы совместно использовать ваш пользовательский datastore с другими пользователями, смотрите, Создают и Тулбоксы Доли.
matlab.io.Datastore | matlab.io.datastore.HadoopLocationBased | matlab.io.datastore.Partitionable