Ваша тестовая функция является одним файлом MATLAB®, который содержит основную функцию и ваши отдельные локальные тестовые функции. Опционально, можно включать фиксатор файла и новые функции фиксатора. File fixtures состоит из настройки и функций отключения, совместно использованных через все тесты в файле. Эти функции выполняются однажды на тестовый файл. Fresh fixtures состоит из настройки и функций отключения, которые выполняются до и после каждой локальной тестовой функции.
Основная функция собирает все локальные тестовые функции в тестовый массив. Имя основной функции соответствует имени вашего тестового файла и должно начинаться или заканчиваться словом 'тест', который является нечувствительным к регистру. Если имя файла не начинается или заканчивается словом 'тест', тесты в файле могут быть проигнорированы в определенных случаях. В этом демонстрационном случае файлом MATLAB является exampleTest.m
. Основная функция должна позвонить functiontests
сгенерировать тестовый массив, tests
. Используйте localfunctions
как вход к functiontests
автоматически сгенерировать cell-массив указателей на функцию ко всем локальным функциям в вашем файле. Это - типичная основная функция.
function tests = exampleTest tests = functiontests(localfunctions); end
Отдельные тестовые функции включены как локальные функции в том же файле MATLAB как основная (генерирующая тест) функция. Эти тестовые имена функций должны начаться или закончиться нечувствительным к регистру словом, 'тестом'. Каждая из локальных тестовых функций должна принять один вход, который является функциональным объектом теста, testCase
. Среда тестирования автоматически генерирует этот объект. Для получения дополнительной информации о создании тестовых функций смотрите Запись Простой Тест Используя Функции и Таблицу Верификаций, Утверждений и Других Проверок. Это - типичный пример скелетных функций локального теста.
function testFunctionOne(testCase) % Test specific code end function testFunctionTwo(testCase) % Test specific code end
Setup и код отключения, также называемый функциями испытательного стенда, настраивают предварительное состояние системы и возвращают его в исходное состояние после запущения теста. Существует два типа этих функций: функции фиксатора файла, которые запускаются однажды на тестовый файл и новые функции фиксатора, которые запускаются до и после каждой локальной тестовой функции. Эти функции не требуются, чтобы генерировать тесты. В общем случае желательно использовать новые фиксаторы по фиксаторам файла, чтобы увеличить инкапсуляцию модульного теста.
Функциональный объект теста, testCase
, должен быть единственный вход, чтобы зарегистрировать фиксатор и новые функции фиксатора. Среда тестирования автоматически генерирует этот объект. TestCase
объект является средними значениями, чтобы передать информацию между функциями настройки, тестовыми функциями и функциями отключения. Его TestData
свойством является, по умолчанию, struct
, который позволяет легкое сложение полей и данных. Типичное использование для этого тестовые данные включает пути и графические указатели. Для примера с помощью TestData
свойство, смотрите, что Тест записи Использует Функции Отключения и Setup.
Функции Фиксатора файла. Используйте функции фиксатора файла, чтобы совместно использовать настройку и функции отключения через все тесты в файле. Именами для функций фиксатора файла должен быть 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
функция задана, возвратите предварительное состояние системы к исходному состоянию путем выполнения функции.
Чтобы запустить тесты от командной строки, используйте runtests
функционируйте со своим тестовым файлом MATLAB, как введено. Например:
results = runtests('exampleTest.m')
В качестве альтернативы можно запустить тесты с помощью run
функция.
results = run(exampleTest)
Для получения дополнительной информации о запущении тестов смотрите runtests
и запущенные тесты для различных рабочих процессов.
Чтобы анализировать результаты испытаний, исследуйте структуру output от runtests
или run
. Для каждого теста результат содержит имя тестовой функции, передало ли это, отказавший, или не завершалось, и время, это исполнилось тест. Для получения дополнительной информации см. Анализ результатов теста и Анализ результатов непройденных тестов.
functiontests
| localfunctions
| runtests