applyFixture

Класс: фиксатор
Пакет: matlab.unittest.fixtures

Настройте фиксатор, чтобы делегировать работу другому фиксатору

Описание

пример

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

The 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