Для тестирования программы MATLAB ® напишите единичный тест с использованием квалификаций, которые являются методами тестирования значений и реагирования на сбои.
Класс теста должен наследовать от matlab.unittest.TestCase и содержат methods блок с Test атрибут. 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 для проверки истинности фактического значения. Краткое описание методов квалификации см. в разделе Таблица проверок, утверждений и других квалификаций.
Часто каждая функция модульного теста получает фактическое значение, применяя тестируемый код, и определяет соответствующее ожидаемое значение. Например, при тестировании plus функция, фактическое значение может быть plus(2,3) и ожидаемое значение 5. В рамках функции тестирования фактические и ожидаемые значения передаются методу квалификации. Например:
testCase.verifyEqual(plus(2,3),5)
Пример теста базовой единицы измерения см. в разделе Запись простого теста с использованием классов.
Структура модульного тестирования MATLAB включает несколько функций для разработки более продвинутых классов тестирования:
Методы установки и разрыва блокируют неявную настройку предварительного состояния системы и возврат его в исходное состояние после выполнения тестов. Пример тестового класса с кодом установки и разрыва см. в разделах Настройка записи и Код разрыва с использованием классов.
Расширенные функции определения, включая прокси фактических значений, диагностику тестов и интерфейс ограничений. Дополнительные сведения см. в разделе matlab.unittest.constraints и matlab.unittest.diagnostics.
Параметризованные тесты для объединения и выполнения тестов по указанным спискам параметров. Дополнительные сведения см. в разделах Создание базового параметризованного теста и Создание расширенного параметризованного теста.
Готовые к использованию приспособления для работы с настройкой и отрывом часто используемых действий тестирования и для совместного использования приспособлений между классами. Дополнительные сведения см. в разделе matlab.unittest.fixtures и «Записать тесты с помощью общих приборов».
Возможность создания пользовательских испытательных приборов. Дополнительные сведения см. в разделах Создание основных пользовательских приспособлений и Создание дополнительных пользовательских приспособлений.