Main Content

MATLAB에서 클래스 기반 단위 테스트 작성하기

MATLAB® 프로그램을 테스트하려면, 값을 테스트하고 실패에 대해 처리하는 메서드인 가설 검정(Qualification)을 사용하여 단위 테스트를 작성하십시오.

테스트 클래스 정의

테스트 클래스는 matlab.unittest.TestCase에서 상속되고 Test 특성(Attribute)을 가진 methods 블록을 가져야 합니다. methods 블록에는 각각이 단위 테스트인 함수가 있습니다. 그 뒤에 일반적이고 기본적인 클래스 정의가 나옵니다.

%% Test Class Definition
classdef MyComponentTest < matlab.unittest.TestCase
   
    %% Test Method Block
    methods (Test)
        % includes unit test functions
    end
end

단위 테스트(Unit Test)

단위 테스트는 소프트웨어 내의 단위의 정확성을 확인하는 방법입니다. 각각의 단위 테스트는 methods 블록 내에 들어 있습니다. 함수는 입력값으로 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

가설 검정(Qualification)은 값을 테스트하고 실패에 대해 처리하는 메서드입니다. 다음 표에는 가설 검정 유형이 나열되어 있습니다.

검증(Verification)

예외를 발생시키지 않으면서 실패를 생성하고 기록하려면 이 가설 검정(Qualification)을 사용하십시오. 남아 있는 테스트가 완료될 때까지 실행됩니다.

matlab.unittest.qualifications.Verifiable
가정(Assumption)

특정 사전 조건이 충족될 때만 테스트가 실행되도록 하려면 이 가설 검정을 사용합니다. 그러나, 사전 조건을 충족시키지 않고 테스트를 실행해도 테스트 실패가 생성되지는 않습니다. 가정 실패가 발생하면 테스트 프레임워크는 테스트에 필터링 표시를 합니다.

matlab.unittest.qualifications.Assumable
어설션

현재 테스트의 사전 조건이 충족되는지 확인하려면 이 가설 검정을 사용합니다.

matlab.unittest.qualifications.Assertable
치명적 어설션(Fatal Assertion)

어설션 지점의 실패로 인해 현재 테스트 메서드의 나머지 부분의 유효성이 없어지거나 상태가 복구 불가능하면 이 가설 검정을 사용합니다.

matlab.unittest.qualifications.FatalAssertable

MATLAB 단위 테스트 프레임워크(Unit Testing Framework)는 각각의 가설 검정(Qualification) 유형에 대해 약 25개의 가설 검정 메서드를 제공합니다. 예를 들어, verifyClassassertClass를 사용하여 값이 예상 클래스인지 테스트하고 assumeTruefatalAssertTrue를 사용하여 실제 값이 참인지 여부를 테스트합니다. 가설 검정 메서드에 대한 요약을 보려면 검증(Verification), 어설션 및 기타 가설 검정(Qualification) 표 항목을 참조하십시오.

각각의 단위 테스트 함수는 테스트 중인 코드를 실행하여 실제 값을 가져오고 이와 관련된 예상 값을 정의하는 경우가 많습니다. 예를 들어, plus 함수를 테스트하는 경우 실제 값이 plus(2,3)이고 예상 값이 5일 수 있습니다. 이 테스트 함수 내에서 실제 값과 예상 값을 가설 검정 메서드에 전달하는 것입니다. 예를 들면 다음과 같습니다.

testCase.verifyEqual(plus(2,3),5)

기본 단위 테스트의 예제를 보려면 클래스를 사용하여 간단한 테스트 케이스 작성하기 항목을 참조하십시오.

고급 테스트 클래스에 대한 추가 기능

MATLAB 단위 테스트 프레임워크에는 다음과 같이 고급 테스트 클래스를 작성하는 몇 가지 기능이 있습니다.

관련 항목