Все хранилища данных, которые получают из пользовательских классов datastore, имеют некоторые общие поведения. Эта процедура тестирования предоставляет рекомендации для проверки минимального набора поведения и функциональных возможностей, которые должны иметь все пользовательские хранилища данных. Вам понадобятся дополнительные тесты, чтобы определить любые уникальные функциональности вашего пользовательского datastore.
Если вы разработали свой пользовательский datastore на основе инструкций в Develope Custom Datastore, то выполните эти процедуры тестирования, чтобы проверить свой пользовательский datastore. Сначала выполните модульные тесты, а затем тесты рабочего процесса:
Модульные тесты определяют конструктор и методы datastore.
Тесты рабочего процесса определяют использование datastore.
Для всех этих тестов:
Если не указано в описании теста, примите, что вы тестируете непустой datastore ds
.
Проверьте тесты на расширениях файлов, кодировках файлов и местоположениях данных (таких как Hadoop®), что ваш пользовательский datastore предназначен для поддержки.
Инструкции по модульному тесту для конструктора datastore следующие.
Тест | Ожидаемый выход |
---|---|
Проверьте, работает ли ваш пользовательский конструктор datastore с минимальными необходимыми входами. |
Объект Datastore вашего пользовательского типа datastore с минимальными ожидаемыми свойствами и методами |
Проверьте, является ли ваш объект datastore Выполните эту команду: isa(ds,'matlab.io.Datastore') |
|
Вызовите пользовательский конструктор datastore с необходимыми входами и любыми поддерживаемыми входными параметрами и аргументами пары "имя-значение". |
Объект Datastore вашего пользовательского типа datastore с минимальными ожидаемыми свойствами и методами |
read
Модульный тест руководства по read
метод
Тест | Ожидаемый выход |
---|---|
Вызовите t = read(ds); |
Данные из начала datastore Если вы задаете размер чтения, то размер возвращенных данных эквивалентен размеру чтения. |
Вызовите t = read(ds); |
Данные, начиная с конечной точки предыдущей операции чтения Если вы задаете размер чтения, то размер возвращенных данных эквивалентен размеру чтения. |
Продолжите вызов while(hasdata(ds)) t = read(ds); end |
Ошибок нет Исправление данных в правильном формате |
Когда данные будут доступны для чтения, проверьте Вызовите объект datastore [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); |
Ошибок нет The Если вы задаете размер чтения, то размер возвращенных данных эквивалентен размеру чтения. |
Когда больше данных доступно для чтения, вызовите Проверьте, что |
Ошибок нет The Если вы задаете размер чтения, то размер возвращенных данных эквивалентен размеру чтения. |
Когда больше данных доступно для чтения, вызовите Проверьте, что |
Ошибок нет The Если вы задаете размер чтения, то размер возвращенных данных эквивалентен размеру чтения. |
Когда больше нет доступных для чтения данных, вызовите Проверьте, что |
Ошибок нет The Если вы задаете размер чтения, то размер возвращенных данных эквивалентен размеру чтения. |
progress
Модульный тест руководства по progress
метод
Тест | Ожидаемый выход |
---|---|
Вызовите |
|
Вызовите
readall(ds); progress(ds) |
|
Вызовите |
Часть между |
Вызовите |
|
preview
Модульный тест руководства по preview
метод
Тест | Ожидаемый выход |
---|---|
Функции |
The |
Функции |
The |
Функции |
The |
Функции |
The |
Функции |
The |
Функции |
The Если вы задаете размер чтения, то размер возвращенных данных эквивалентен размеру чтения. |
Функции |
The |
В то время как datastore имеет данные, доступные для чтения, вызывайте |
The |
partition
Модульный тест руководства по partition
метод
Тест | Ожидаемый выход |
---|---|
Функции Функции subds = partition(ds,n,index) read(subds) Проверьте, что раздел действителен. isequal(properties(ds),properties(subds)) isequal(methods(ds),methods(subds)) |
The Возвращенный раздел Секционированный datastore The Вызывающие Если вы задаете размер чтения, то размер возвращенных данных эквивалентен размеру чтения. |
Функции Проверьте возвращенные данные по телефону 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)) |
Раздел Раздел The |
Функции | Перераспределение раздела datastore должно работать без ошибок. |
initializeDatastore
Если ваш datastore наследует от matlab.io.datastore.HadoopFileBased
, затем проверьте поведение initializeDatastore
использование руководящих принципов в этой таблице.
Тест | Ожидаемый выход |
---|---|
Функции The
Для примера инициализируйте info = struct('FileName','myFileName.ext',... 'Offset',0,'Size',500) initializeDatastore(ds,info) Проверьте инициализацию, исследуя свойства вашего объекта datastore. ds |
The |
getLocation
Если ваш datastore наследует от matlab.io.datastore.HadoopFileBased
, затем проверьте поведение getLocation
использование этих руководящих принципов.
Тест | Ожидаемый выход |
---|---|
Функции location = getLocation(ds) Основываясь на вашей пользовательской реализации datastore,
Если resolve(location) |
The |
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) |
The |
Для этого тестового шага создайте объект 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