Как протестировать MATLAB® программа, написание модульного теста с использованием проверок, которые являются методами для проверки значений и реагирования на отказы.
Тестовый класс должен унаследовать от matlab.unittest.TestCase
и содержать methods
блок со Test
атрибут. The methods
блок содержит функции, каждая из которых является модульным тестом. Ниже приводится общее определение базового класса.
%% Test Class Definition classdef MyComponentTest < matlab.unittest.TestCase %% Test Method Block methods (Test) % includes unit test functions end end
Модульный тест является методом, который определяет правильность модуля программного обеспечения. Каждый модульный тест содержится в блоке методов. Функция должна принять TestCase
образец как вход.
%% Test Class Definition classdef MyComponentTest < matlab.unittest.TestCase %% Test Method Block methods (Test) %% Test Function function testASolution(testCase) %% Exercise function under test % act = the value from the function under test %% Verify using test qualification % exp = your expected value % testCase.<qualification method>(act,exp); end end end
Проверки являются методами для проверки значений и реагирования на отказы. В этой таблице перечислены типы проверки.
Верификации | Используйте эту проверку для создания и записи отказов без выдачи исключения. Оставшиеся тесты выполняются до своего завершения. | matlab.unittest.qualifications.Verifiable |
Предположения | Используйте эту проверку, чтобы убедиться, что тест запускается только при выполнении определенных предусловий. Однако выполнение теста без удовлетворения предусловий не приводит к непройденному тесту. Когда происходит отказ предположения, среда тестирования помечает тест как отфильтрованный. | matlab.unittest.qualifications.Assumable |
Утверждения | Используйте эту проверку для обеспечения выполнения предусловий текущего теста. | matlab.unittest.qualifications.Assertable |
Критические утверждения | Используйте эту проверку, когда отказ в точке утверждения делает оставшуюся часть текущего метода тестирования недействительной, или состояние невосстановимо. | matlab.unittest.qualifications.FatalAssertable |
Среда модульного тестирования MATLAB предоставляет приблизительно 25 методов проверки для каждого типа проверки. Для примера используйте verifyClass
или assertClass
чтобы проверить, что значение имеет ожидаемый класс, и использовать assumeTrue
или fatalAssertTrue
чтобы проверить, является ли фактическое значение true. Для сводных данных методов проверки см. Таблицу верификаций, утверждений и других квалификаций.
Часто каждая функция модульного теста получает фактическое значение путем выполнения кода, который вы тестируете, и определяет связанное ожидаемое значение. Для примера, если вы тестируете plus
function, фактическое значение может быть plus(2,3)
и ожидаемое значение 5
. В рамках тестовой функции вы передаете фактическое и ожидаемые значения в метод проверки. Для примера:
testCase.verifyEqual(plus(2,3),5)
Пример базового модульного теста см. в разделе Запись простого тестового примера с использованием классов.
Среда модульного тестирования MATLAB включает несколько функций для создания более продвинутых классов тестирования:
Методы Setup и отключения блокируют неявно настраивать предварительное состояние системы и возвращать ее в исходное состояние после запуска тестов. Для примера тестового класса с кодом настройки и отключения смотрите Write Setup и Teardown Code Using Classes.
Расширенные функции проверки, включая фактическое значение прокси-сервера, диагностический тест и интерфейс ограничений. Для получения дополнительной информации смотрите matlab.unittest.constraints
и matlab.unittest.diagnostics
.
Параметризованные тесты для объединения и выполнения тестов в заданных списках параметров. Для получения дополнительной информации смотрите Создать основной параметризованный тест и Создать расширенный параметризованный тест.
Готовые к использованию фиксаторы для обработки настройки и отключения часто используемых проверок и для совместного использования фиксаторов между классами. Для получения дополнительной информации смотрите matlab.unittest.fixtures
и запись тестов с использованием общих фиксаторов.
Возможность создания пользовательских испытательных стендов. Для получения дополнительной информации смотрите Создать базовый пользовательский прибор и Создать расширенный пользовательский прибор.