Запись Функциональных модульных тестов

Создание тестовой функции

Ваша тестовая функция является единственным файлом 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. Для каждого теста результат содержит имя тестовой функции, передало ли это, отказавший, или не завершалось, и время, которое потребовалось, чтобы запустить тест. Для получения дополнительной информации см. Анализ результатов теста и Анализ результатов непройденных тестов.

Смотрите также

| |

Похожие темы

Была ли эта тема полезной?