Ваша тестовая функция является одним файлом MATLAB®, который содержит основную функцию и ваши отдельные локальные тестовые функции. Опционально, можно включать фиксатор файла и новые функции фиксатора. File fixtures состоит из настройки и функций отключения, совместно использованных через все тесты в файле. Эти функции выполняются однажды на тестовый файл. Fresh fixtures состоит из настройки и функций отключения, которые выполняются до и после каждой локальной тестовой функции.
Основная функция собирает все локальные тестовые функции в тестовый массив. Поскольку это - основная функция, имя функции соответствует имени вашего .m
файл и следует соглашению о присвоении имен запуска или окончания в слове 'тест', который является нечувствительным к регистру. В этом демонстрационном случае файлом 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 FunctionTwotest(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 FunctionTwotest(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
Фигура ниже детализирует задачи, выполняемые, когда вы запускаете тесты.
Чтобы запустить тесты от командной строки, используйте runtests
команда с вашим тестовым файлом MATLAB, как введено. Например:
results = runtests('exampleTest.m')
В качестве альтернативы можно запустить тесты с помощью run
функция.
results = run(exampleTest)
Для получения дополнительной информации о запущении тестов смотрите runtests
страница с описанием и Запущенные Тесты для Различных Рабочих процессов.
Чтобы анализировать результаты испытаний, исследуйте структуру output от runtests
или run
. Для каждого теста результат содержит имя тестовой функции, передало ли это, отказавший, или не завершалось, и время, которое потребовалось, чтобы запустить тест. Для получения дополнительной информации см. Анализ результатов теста и Анализ результатов непройденных тестов.
functiontests
| localfunctions
| runtests