exponenta event banner

applyFixture

Класс: matlab.unittest.fixtures.Fixture
Пакет: matlab.unittest.fixtures

Настройка приспособления для делегирования работы другому приспособлению

Описание

пример

applyFixture(fixture1,fixture2) устанавливает fixture2 для использования с fixture1. Делегирование работы fixture2, вызовите этот метод из setup способ fixture1.

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