Создание модульных тестов на основе классов в MATLAB

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

Похожие темы