Main Content

기본 사용자 지정 픽스처(Fixture) 생성하기

이 예제에서는 표시 형식을 16진수 표현으로 변경하는 기본 사용자 지정 픽스처를 만드는 방법을 보여줍니다. 또한, 이 픽스처를 사용하여 숫자 열을 텍스트로 표시하는 함수를 테스트하는 방법도 보여줍니다. 테스트가 완료된 후에는 프레임워크가 표시 형식을 테스트 이전 상태로 복원합니다.

FormatHexFixture 클래스 정의 생성하기

작업 폴더의 파일에 matlab.unittest.fixtures.Fixture 클래스에서 상속되는 새 클래스 FormatHexFixture를 만듭니다. 이 픽스처(Fixture)가 MATLAB® 표시 형식의 테스트 이전 상태를 복원하도록 하기를 바라므로 원래 표시 형식을 기록하는 OriginalFormat 속성을 만드십시오.

classdef FormatHexFixture < matlab.unittest.fixtures.Fixture
    properties (Access = private)
        OriginalFormat
    end
end

setup 메서드와 teardown 메서드 구현하기

Fixture 클래스의 서브클래스는 setup 메서드를 구현해야 합니다. 이 메서드를 사용하여 테스트 이전 표시 형식을 기록하고 형식을 'hex'로 설정하십시오. 원래 표시 형식을 복원하려면 teardown 메서드를 사용하십시오. FormatHexFixture 클래스의 methods 블록에서 setup 메서드와 teardown 메서드를 정의하십시오.

classdef FormatHexFixture < matlab.unittest.fixtures.Fixture
    properties (Access = private)
        OriginalFormat
    end
    methods
        function setup(fixture)
            fixture.OriginalFormat = format;
            format hex
        end
        function teardown(fixture)
            format(fixture.OriginalFormat)
        end
    end
end

사용자 지정 픽스처 적용하기

작업 폴더의 파일에서 다음과 같은 테스트 클래스 SampleTest.m을 만드십시오.

classdef SampleTest < matlab.unittest.TestCase
    methods (Test)
        function test1(testCase)
            testCase.applyFixture(FormatHexFixture)
            actStr = getColumnForDisplay([1;2;3],'Small Integers');
            expStr = ['Small Integers  '
                '3ff0000000000000'
                '4000000000000000'
                '4008000000000000'];
            testCase.verifyEqual(actStr,expStr)
        end
    end
end

function str = getColumnForDisplay(values,title)
elements = cell(numel(values)+1,1);
elements{1} = title;
for idx = 1:numel(values)
    elements{idx+1} = displayNumber(values(idx));
end
str = char(elements);
end

function str = displayNumber(n)
str = strtrim(evalc('disp(n);'));
end

이 테스트는 사용자 지정 픽스처를 적용하고 표시되는 열의 16진수 표현이 예상대로 나타나는지 확인합니다.

명령 프롬프트에서 테스트를 실행합니다.

run(SampleTest);
Running SampleTest
.
Done SampleTest
__________

참고 항목

관련 항목