Все хранилища данных, которые выведены от пользовательских классов datastore, совместно используют некоторые общие поведения. Эта процедура тестирования предоставляет инструкции, чтобы протестировать минимальный набор поведений и функциональностей, которые должны иметь все пользовательские хранилища данных. Вам будут нужны дополнительные тесты, чтобы квалифицировать любую уникальную функциональность вашего пользовательского datastore.
Если вы разработали свой пользовательский datastore на основе инструкций в, Разрабатывают Пользовательский Datastore, то следуют за этими процедурами тестирования, чтобы квалифицировать ваш пользовательский datastore. Сначала выполните модульные тесты, сопровождаемые тестами рабочего процесса:
Модульные тесты квалифицируют конструктора datastore и методы.
Тесты рабочего процесса квалифицируют использование datastore.
Для всех этих тестов:
Если не задано в тестовом описании, примите, что вы тестируете непустой datastore ds
.
Проверьте тесты на расширениях файла, кодировке файла и местоположениях данных (как Hadoop®), который ваш пользовательский datastore разработан, чтобы поддержать.
Инструкции по модульному тесту для конструктора datastore следующие.
Описание теста | Ожидаемый Вывод |
---|---|
Проверьте, работает ли ваш пользовательский конструктор datastore с минимальными необходимыми входными параметрами. |
Объект Datastore вашего пользовательского типа хранилища данных с минимальными ожидаемыми свойствами и методами |
Проверьте, имеет ли ваш объект Запустите эту команду: isa(ds,'matlab.io.Datastore') |
|
Вызовите своего пользовательского конструктора datastore с необходимыми входными параметрами и любыми поддерживаемыми входными параметрами и аргументами в виде пар "имя-значение". |
Объект Datastore вашего пользовательского типа хранилища данных с минимальными ожидаемыми свойствами и методами |
чтение
Инструкции по модульному тесту для метода 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(ds); t = read(ds); |
Никакие ошибки
Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
Когда больше данных будет доступно в чтение, вызовите метод Проверьте, что метод |
Никакие ошибки Метод Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
Когда больше данных будет доступно в чтение, вызовите метод Проверьте, что метод |
Никакие ошибки Метод Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
Когда больше данных не будет доступно в чтение, вызовите метод Проверьте, что |
Никакие ошибки Метод Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
прогресс
Инструкции по модульному тесту для метода progress
Описание теста | Ожидаемый Вывод |
---|---|
Вызовите метод |
|
Вызовите метод
readall(ds); progress(ds) |
|
Вызовите метод |
Часть между |
Вызовите метод |
|
предварительный просмотр
Инструкции по модульному тесту для метода preview
Описание теста | Ожидаемый Вывод |
---|---|
Вызовите |
Метод |
Вызовите |
Метод |
Вызовите |
Метод |
Вызовите |
Метод |
Вызовите |
Метод |
Вызовите |
Метод Если вы задаете размер чтения, то размер возвращенных данных эквивалентен, чтобы считать размер. |
Вызовите |
Метод |
В то время как datastore имеет доступные данные, чтобы читать, вызовите |
Метод |
раздел
Инструкции по модульному тесту для метода 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
с помощью инструкций в этой таблице.
Описание теста | Ожидаемый Вывод |
---|---|
Вызовите Struct
Например, инициализируйте struct 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
), то проверьте свои тесты рабочего процесса в параллельных средах выполнения, таких как Параллельные вычисления Toolbox™ и Распределенные вычисления MATLAB 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. HadoopFileBased
| matlab.io.datastore. Partitionable