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