Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

matlab.unittest.selectors.HasSuperclass 类

命名空间: matlab.unittest.selectors

根据测试类层次结构选择 TestSuite 数组元素

描述

matlab.unittest.selectors.HasSuperclass 类提供用于根据测试类层次结构过滤测试套件的选择器。

构造

selector = matlab.unittest.selectors.HasSuperclass(class) 创建一个选择器,它仅保留其测试类派生自 class 的元素,以此过滤 TestSuite 数组。

输入参量

全部展开

超类名称,指定为字符串标量或字符向量。

复制语义

值。要了解值类如何影响复制操作,请参阅复制对象

示例

全部折叠

在当前文件夹中创建以下句柄类。

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 中推出