Тестовая функция представляет собой отдельный файл MATLAB ®, содержащий основную функцию и отдельные локальные тестовые функции. При необходимости можно включить файловое приспособление и новые функции приспособления. Файловые приспособления состоят из функций настройки и разрыва, общих для всех тестов в файле. Эти функции выполняются один раз для каждого тестового файла. Свежие приспособления состоят из функций настройки и отрыва, которые выполняются до и после каждой локальной тестовой функции.
Основная функция собирает все локальные тестовые функции в тестовый массив. Имя основной функции соответствует имени тестового файла и должно начинаться или заканчиваться словом «test», которое не учитывает регистр. Если имя файла не начинается или не заканчивается словом «test», то в некоторых случаях тесты в файле могут игнорироваться. В данном примере файл MATLAB является exampleTest.m. Основная функция должна выполнить вызов functiontests для создания тестового массива, tests. Использовать localfunctions в качестве входных данных для functiontests для автоматического создания массива ячеек дескрипторов функций для всех локальных функций в файле. Это типичная основная функция.
function tests = exampleTest tests = functiontests(localfunctions); end
Отдельные тестовые функции включаются как локальные функции в тот же файл MATLAB, что и основная (генерирующая тест) функция. Эти имена тестовых функций должны начинаться или заканчиваться не учитывающим регистр словом «test». Каждая из локальных тестовых функций должна принимать один вход, который является объектом тестового случая функции, testCase. Структура тестирования автоматически генерирует этот объект. Дополнительные сведения о создании тестовых функций см. в разделе Создание простого тестового случая с использованием функций и таблицы проверок, утверждений и других квалификаций. Это типичный пример скелетных функций локального тестирования.
function testFunctionOne(testCase) % Test specific code end function testFunctionTwo(testCase) % Test specific code end
Код установки и разрыва, также называемый функциями тестового приспособления, устанавливает предустановленное состояние системы и возвращает его в исходное состояние после выполнения теста. Существует два типа этих функций: файловые функции приспособления, которые выполняются один раз для каждого тестового файла, и свежие функции приспособления, которые выполняются до и после каждой локальной тестовой функции. Эти функции не требуются для создания тестов. В общем, предпочтительно использовать свежие приспособления по сравнению с картонными приспособлениями для увеличения инкапсуляции модульных испытаний.
Объект теста функции, testCase, должны быть единственными входными данными для файлового приспособления и новых функций приспособления. Структура тестирования автоматически генерирует этот объект. TestCase object - это средство передачи информации между функциями настройки, тестовыми функциями и функциями разрыва. Его TestData свойство по умолчанию является struct, что позволяет легко добавлять поля и данные. Типичные способы использования этих тестовых данных включают в себя пути и графические дескрипторы. Для примера использования TestData см. раздел Тест записи с использованием функций установки и разлома.
Файловые функции приспособления. Используйте функции файловых приспособлений для совместного использования функций настройки и разрыва во всех тестах в файле. Имена функций файлового приспособления должны быть setupOnce и teardownOnceсоответственно. Эти функции выполняют один раз для каждого файла. Для установки пути перед тестированием можно использовать файловую аппаратуру, а затем сбросить его до исходного пути после тестирования. Это типичный пример настройки фиксатора скелетного файла и кода разрыва.
function setupOnce(testCase) % do not change function name % set a new path, for example end function teardownOnce(testCase) % do not change function name % change back to original path, for example end
Новые функции приспособления. Используйте новые функции крепления, чтобы настроить и разорвать состояния для каждой локальной тестовой функции. Имена этих новых функций приспособления должны быть setup и teardownсоответственно. Свежие приборы можно использовать для получения новой фигуры перед тестированием и для закрытия фигуры после тестирования. Это типичный пример настройки уровня тестовой функции скелета и кода разрыва.
function setup(testCase) % do not change function name % open a figure, for example end function teardown(testCase) % do not change function name % close figure, for example end
%% Main function to generate tests function tests = exampleTest tests = functiontests(localfunctions); end %% Test Functions function testFunctionOne(testCase) % Test specific code end function testFunctionTwo(testCase) % Test specific code end %% Optional file fixtures function setupOnce(testCase) % do not change function name % set a new path, for example end function teardownOnce(testCase) % do not change function name % change back to original path, for example end %% Optional fresh fixtures function setup(testCase) % do not change function name % open a figure, for example end function teardown(testCase) % do not change function name % close figure, for example end
При выполнении функциональных тестов платформа тестирования выполняет следующие задачи:
Создайте массив тестов, заданных локальными функциями тестирования.
Если setupOnce указывается функция, путем запуска которой устанавливается состояние предварительной проверки системы.
Для каждого теста выполните соответствующую функцию локального тестирования. Если setup указана функция, запустите ее перед запуском локальной тестовой функции. Если teardown указана функция, запустите ее после выполнения локальной тестовой функции.
Если teardownOnce указывается функция, возвращая состояние pretest системы в исходное состояние, запустив функцию.

Для запуска тестов из командной строки используйте команду runtests в качестве входных данных используйте тестовый файл MATLAB. Например:
results = runtests('exampleTest.m')
Кроме того, можно выполнить тесты с помощью run функция.
results = run(exampleTest)
Дополнительные сведения о выполнении тестов см. в разделе runtests и Выполнить тесты для различных рабочих процессов.
Для анализа результатов тестирования изучите структуру вывода из runtests или run. Для каждого теста результат содержит имя тестовой функции, независимо от того, была ли она пройдена, не пройдена или не завершена, и время, необходимое для выполнения теста. Дополнительные сведения см. в разделах Анализ результатов тестов и Анализ результатов неудачных тестов.
functiontests | localfunctions | runtests