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