Основанные на классах автора модульные тесты в MATLAB

Как протестировать 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 включает несколько функций для создания более продвинутых классов тестирования:

Похожие темы