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

Пакет: 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