matlab.unittest.selectors.HasSuperclass class

Пакет: matlab.unittest.selectors

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

Конструкция

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

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

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

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

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

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

Примеры

свернуть все

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

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