Main Content

applyFixture

클래스: matlab.unittest.fixtures.Fixture
네임스페이스: matlab.unittest.fixtures

다른 픽스처(Fixture)로 작업을 위임하도록 픽스처 설정

설명

예제

applyFixture(fixture1,fixture2)fixture1과 함께 사용할 fixture2를 설정합니다. fixture2에 작업을 위임하려면 fixture1setup 메서드에서 이 메서드를 호출하십시오.

applyFixture 메서드는 fixture2의 라이프사이클을 fixture1의 라이프사이클에 연결합니다. 테스트 프레임워크가 fixture1을 해제하면 fixture2도 해제됩니다.

예제

f = applyFixture(fixture1,fixture2)fixture2가 설정되면 이것도 출력값으로 반환합니다.

입력 인수

모두 확장

주 픽스처로, matlab.unittest.fixtures.Fixture의 인스턴스로 지정됩니다.

주 픽스처를 설정하기 위한 픽스처로, matlab.unittest.fixtures.Fixture의 인스턴스로 지정됩니다. 주 픽스처가 이 픽스처에 작업을 위임합니다.

예제

모두 확장

검색 경로에서 폴더를 제거하고, 제거하려는 폴더가 경로에 없을 때 발생하는 경고를 표시하지 않는 픽스처를 구성합니다. 이 픽스처는 SuppressedWarningsFixture 픽스처를 사용하여, 지정된 경고를 비활성화합니다. 테스트 프레임워크는 RemoveFolderFromPathFixture 해제 도중 적절한 시기에 SuppressedWarningsFixture도 해제하며, 이 경우 경고 상태가 이전 값으로 복원됩니다.

classdef RemoveFolderFromPathFixture < matlab.unittest.fixtures.Fixture
    properties (SetAccess = immutable)
        Folder (1,1) string
    end
    methods
        function fixture = RemoveFolderFromPathFixture(folder)
            fixture.Folder = folder;
        end
        function setup(fixture)
            import matlab.unittest.fixtures.SuppressedWarningsFixture
            
            % Delegate to SuppressedWarningsFixture to suppress display of warnings.
            fixture.applyFixture(SuppressedWarningsFixture('MATLAB:rmpath:DirNotFound'));
            
            % Remove the folder from the path.
            originalPath = path;
            fixture.addTeardown(@()path(originalPath));
            rmpath(fixture.Folder);
        end
    end
    methods (Access = protected)
        function bool = isCompatible(fixture1,fixture2)
            bool = fixture1.Folder == fixture2.Folder;
        end
    end
end

임시 텍스트 파일을 만드는 픽스처를 구성합니다. 이 픽스처는 TemporaryFolderFixture 픽스처를 사용하여 임시 폴더를 만든 후 이 폴더 내에 텍스트 파일을 만듭니다. 프레임워크는 TemporaryTextFileFixture 해제 도중 적절한 시기에 TemporaryFolderFixture도 해제하며, 이때 폴더와 그 내용이 삭제됩니다.

classdef TemporaryTextFileFixture < matlab.unittest.fixtures.Fixture
    properties (SetAccess = private)
        File
    end   
    methods
        function setup(fixture)
            import matlab.unittest.fixtures.TemporaryFolderFixture
            
            % Delegate to TemporaryFolderFixture to create a temporary folder.
            tempFixture = fixture.applyFixture(TemporaryFolderFixture);
            
            fixture.File = fullfile(tempFixture.Folder,'file.txt');
            
            fid = fopen(fixture.File,'wt');
            fixture.fatalAssertNotEqual(fid,-1);
            
            status = fclose(fid);
            fixture.fatalAssertEqual(status,0);
        end
    end
end

버전 내역

R2016a에 개발됨