matlab.unittest.selectors.HasProcedureName class

Пакет: matlab.unittest.selectors

Селектор для TestSuite элементы, определяемые именем процедуры

Описание

The HasProcedureName селекторные фильтры TestSuite элементы массива, определяемые именем процедуры. Имя процедуры тестирования не содержит ни имени класса или пакета, ни информации о параметризации. В тесте на основе классов имя процедуры является именем тестового метода. В функциональном тесте это имя локальной функции, которая содержит тест. В тесте на основе скриптов это имя сгенерировано из заголовка тестового раздела.

Конструкция

matlab.unittest.selectors.HasProcedureName(n) создает селектор для TestSuite элементы, определяемые именем процедуры, n.

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

Входные параметры

расширить все

Имя процедуры задается как вектор символов, строковый скаляр или matlab.unittest.constraints.Constraint образец. Имя процедуры тестирования не содержит ни имени класса или пакета, ни информации о параметризации. В тесте на основе классов имя процедуры является именем тестового метода. В функциональном тесте это имя локальной функции, которая содержит тест. В тесте на основе скриптов это имя тестового раздела.

Пример: "Test1"

Пример: ContainsSubstring('Test')

Свойства

расширить все

Условие, что имя процедуры должно удовлетворять, чтобы быть включено в тестовый набор, заданный в качестве образца matlab.unittest.constraints.Constraint класс.

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

Значение. Чтобы узнать, как классы значений влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

свернуть все

Создайте следующий тестовый класс в файле, ExampleTest.m, в текущей папке.

classdef ExampleTest < matlab.unittest.TestCase
    methods(Test)
        function testPathAdd(testCase)
            % test code
        end
        function testOne(testCase)
            % test code
        end
         function testTwo(testCase)
            % test code
        end
    end
end

В командной строке создайте тестовый набор из ExampleTest.m Файл и исследуйте содержимое.

import matlab.unittest.TestSuite;
import matlab.unittest.selectors.HasProcedureName;
import matlab.unittest.constraints.EndsWithSubstring;

suite = TestSuite.fromFile('ExampleTest.m');
{suite.Name}
ans =

  1×3 cell array

    {'ExampleTest/testPathAdd'}    {'ExampleTest/testOne'}    {'ExampleTest/testTwo'}

Этот набор содержит три теста.

Выберите все элементы тестового набора с именем процедуры testPathAdd, и исследуйте содержимое.

s1 = suite.selectIf(HasProcedureName("testPathAdd"))
s1 = 

  Test with properties:

                  Name: 'ExampleTest/testPathAdd'
         ProcedureName: 'testPathAdd'
             TestClass: "ExampleTest"
            BaseFolder: 'C:\work'
      Parameterization: [0×0 matlab.unittest.parameters.EmptyParameter]
    SharedTestFixtures: [0×0 matlab.unittest.fixtures.EmptyFixture]
                  Tags: {1×0 cell}

Tests Include:
   0 Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.

Отфильтрованный тестовый набор содержит только один тестовый элемент.

Выберите все элементы тестового набора с именем процедуры, которая заканчивается на 'One' или 'Two', и исследуйте содержимое.

s1 =  suite.selectIf(HasProcedureName(EndsWithSubstring('One')) | ...
    HasProcedureName(EndsWithSubstring('Two')));
{s1.Name}
ans =

  1×2 cell array

    {'ExampleTest/testOne'}    {'ExampleTest/testTwo'}

Во время конструкции тестового набора создайте тестовый набор, который содержит только тесты с подстрокой 'One'.

import matlab.unittest.constraints.ContainsSubstring;
s2 = TestSuite.fromFile('ExampleTest.m',...
    HasProcedureName(ContainsSubstring('One')))
s2 = 

  Test with properties:

                  Name: 'ExampleTest/testOne'
         ProcedureName: 'testOne'
             TestClass: "ExampleTest"
            BaseFolder: 'C:\work'
      Parameterization: [0×0 matlab.unittest.parameters.EmptyParameter]
    SharedTestFixtures: [0×0 matlab.unittest.fixtures.EmptyFixture]
                  Tags: {1×0 cell}

Tests Include:
   0 Parameterizations, 0 Shared Test Fixture Classes, 0 Tags.

Альтернативы

Используйте HasProcedureName селектор максимальной гибкости для создания тестовых наборов из имен процедур. Кроме того, во время конструкции тестового набора можно фильтровать тестовый набор с помощью 'ProcedureName' Пара "имя-значение". Например, следующие строки кода функционально эквивалентны.

s = TestSuite.fromClass(?ExampleTest,'ProcedureName','Test1');
s = testsuite('ExampleTest.m','ProcedureName','Test1');
Введенный в R2017a