exponenta event banner

matlab.unittest.fixtures.ImageFixture класс

Пакет: matlab.unittest.fixtures

Приспособление для временного добавления папок к пути MATLAB

Описание

PathFixture класс обеспечивает приспособление для временного добавления папок к пути MATLAB ®. Когда структура тестирования настраивает приспособление, она добавляет указанные папки в путь. Когда каркас разрывает приспособление, он восстанавливает путь MATLAB в предыдущее состояние.

Строительство

matlab.unittest.fixtures.PathFixture(folders) создает приспособление для временного добавления папок к пути MATLAB.

matlab.unittest.fixtures.PathFixture(folders,Name,Value) создает приспособление с дополнительными опциями, заданными одним или несколькими аргументами пары имя-значение. Например, matlab.unittest.fixtures.PathFixture('myFolder','IncludingSubfolders',true) конструирует приспособление, которое добавляет myFolder и все его подпапки на пути.

Входные аргументы

развернуть все

Папки для добавления к пути MATLAB, заданному как строковый массив, символьный вектор или массив ячеек символьных векторов. Если какая-либо из указанных папок не существует, MATLAB выдает ошибку.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Индикатор для включения вложенных папок folders на пути, указанном как false или true (логический 0 или 1). Это значение равно false по умолчанию. При указании true, структура тестирования включает в себя подпапки folders на пути. Пакеты, классы и частные папки не добавляются к пути, даже если этот аргумент true.

Куда добавить папки, указанные как 'begin' или 'end'. Значение по умолчанию: 'begin', что добавляет folders к началу (верху) контура.

Если этот аргумент используется с IncludingSubfolders, приспособление добавляет папки и их вложенные папки в верхнюю или нижнюю часть пути как единый блок с folders сверху.

Свойства

Folders

Папки для добавления к пути MATLAB, заданному как строковый массив. Это свойство доступно только для чтения и соответствует folders входной аргумент.

IncludeSubfolders

Индикатор для включения вложенных папок folders на пути, указанном как false или true (логический 0 или 1). Это свойство доступно только для чтения. Это false по умолчанию, но можно указать его как true во время строительства.

Position

Куда добавить папки, указанные как 'begin' или 'end'. Это свойство доступно только для чтения. Это 'begin' по умолчанию, но можно указать его как 'end' во время строительства.

Копирование семантики

Ручка. Сведения о том, как классы обработки влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Временно добавьте две папки в путь поиска MATLAB с помощью приспособления.

В этом примере предполагается, что folderA и folderB существуют в текущей папке. Создайте папки, если они не существуют.

if ~isfolder('folderA')
    mkdir folderA
end
if ~isfolder('folderB')
    mkdir folderB
end

В текущей папке создайте PathFixtureTest класс. Класс добавляет folderA и folderB к пути с помощью PathFixture экземпляр. Затем он утверждает, что путь содержит имена папок.

classdef PathFixtureTest < matlab.unittest.TestCase
    methods(Test)
        function test1(testCase)
            import matlab.unittest.fixtures.PathFixture
            import matlab.unittest.constraints.ContainsSubstring
            f = testCase.applyFixture(PathFixture(["folderA","folderB"]));
            testCase.assertThat(path,ContainsSubstring(f.Folders(1)))
            testCase.assertThat(path,ContainsSubstring(f.Folders(2)))
        end
    end
end

Запустите тест. Потому что оба folderA и folderB находятся на пути, тест проходит.

runtests('PathFixtureTest')
Running PathFixtureTest
.
Done PathFixtureTest
__________
ans = 
  TestResult with properties:

          Name: 'PathFixtureTest/test1'
        Passed: 1
        Failed: 0
    Incomplete: 0
      Duration: 0.4069
       Details: [1×1 struct]

Totals:
   1 Passed, 0 Failed, 0 Incomplete.
   0.40688 seconds testing time.

После выполнения теста инфраструктура восстанавливает путь к предыдущему состоянию.

В текущей папке создайте SharedAddPathFixtureTest класс. В этом примере предполагается, что вложенная папка helperFiles существует в текущей папке.

classdef (SharedTestFixtures = { ...
        matlab.unittest.fixtures.PathFixture('helperFiles')}) ...
        SharedAddPathFixtureTest < matlab.unittest.TestCase
    methods(Test)
        function test1(testCase)
            f = testCase.getSharedTestFixtures;
            disp("Added to path: " + f.Folders)
        end
    end
end

В командной строке запустите тест.

run(SharedAddPathFixtureTest);
Setting up PathFixture
Done setting up PathFixture: Added 'H:\Documents\doc_examples\helperFiles' to the path.
__________

Running SharedAddPathFixtureTest
Added to path: H:\Documents\doc_examples\helperFiles
.
Done SharedAddPathFixtureTest
__________

Tearing down PathFixture
Done tearing down PathFixture: Restored the path to its original state.
__________

После выполнения теста инфраструктура восстанавливает путь к предыдущему состоянию.