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