exponenta event banner

matlab.unittest.selectors.HasSuperclass класс

Пакет: matlab.unittest.selectors

Селектор для TestSuite элементы, определяемые иерархией классов тестирования

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

matlab.unittest.selectors.HasSuperclass(n) создает селектор, который фильтрует TestSuite элементы массива путем сохранения только тех элементов, класс тестирования которых является производным от n.

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

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

Имя суперкласса, указанное как вектор символа или скаляр строки.

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

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

Примеры

свернуть все

Создайте следующий класс дескрипторов в текущей папке.

classdef MyClass < handle
    properties
        % properties of class
    end
    methods
        % methods of class
    end
end

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

classdef Feature1_Test < matlab.unittest.TestCase
    methods (Test)
        function testA1(testCase)
            % test code
        end
        function testB1(testCase)
            % test code
        end
    end
end

Создайте следующий тестовый класс в текущей папке. Подклассы этого класса теста MyClass.

classdef Feature2_Test < matlab.unittest.TestCase & MyClass
    methods (Test)
        function testA2(testCase)
            % test code
        end
        function testB2(testCase)
            % test code
        end
    end
end

Создайте набор тестов из всех файлов в текущей папке. В зависимости от того, какие файлы находятся в вашей папке, набор тестов может отличаться.

import matlab.unittest.TestSuite;
suite = TestSuite.fromFolder(pwd)
suite = 

  1×4 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

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

Просмотрите имена тестовых элементов в наборе.

{suite.Name}'
ans =

  4×1 cell array

    {'Feature1_Test/testA1'}
    {'Feature1_Test/testB1'}
    {'Feature2_Test/testA2'}
    {'Feature2_Test/testB2'}

Создайте другой тестовый пакет, содержащий только те элементы, которые имеют MyClass в иерархии классов. Просмотрите имена тестовых элементов. Начиная с класса теста Feature2_Test является единственным классом теста для подкласса MyClass, в набор включаются только тестовые элементы из этого класса.

newSuite = suite.selectIf(HasSuperclass('MyClass'));
{newSuite.Name}'
ans =

  2×1 cell array

    {'Feature2_Test/testA2'}
    {'Feature2_Test/testB2'}

В качестве альтернативы используйте testsuite для непосредственного создания отфильтрованного набора.

newSuite = testsuite(pwd,'Superclass','MyClass');
Представлен в R2018a