Main Content

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

matlab.unittest.TestSuite 类

命名空间: matlab.unittest

对要运行的测试进行分组的基础接口

描述

matlab.unittest.TestSuite 类是用于在测试框架中对测试进行分组的基础接口。测试运行器对由 TestSuite 对象组成的数组进行操作。

创建对象

使用 TestSuite 类的静态方法创建 TestSuite 数组。您还可以通过使用 testsuite 函数来创建一个测试套件。

方法

全部展开

示例

全部折叠

创建不同测试套件,然后串联这些套件。

在当前文件夹中名为 eyeTest.m 的文件中,创建一个基于函数的测试来测试 eye 函数。

function tests = eyeTest
tests = functiontests(localfunctions);
end

function doubleClassTest(testCase)
actual = eye;
verifyClass(testCase,actual,"double")
end

function singleClassTest(testCase)
actual = eye("single");
verifyClass(testCase,actual,"single")
end

function uint16ClassTest(testCase)
actual = eye("uint16");
verifyClass(testCase,actual,"uint16")
end

function sizeTest(testCase)
expected = [7 13];
actual = eye(expected);
verifySize(testCase,actual,expected)
end

function valueTest(testCase)
actual = eye(42);
verifyEqual(testCase,unique(diag(actual)),1)    % Diagonal values must be 1
verifyEqual(testCase,unique(triu(actual,1)),0)  % Upper triangular values must be 0
verifyEqual(testCase,unique(tril(actual,-1)),0) % Lower triangular values must be 0
end

在当前文件夹中另一个名为 ZerosTest.m 的文件中,创建一个基于类的测试来测试 zeros 函数。

classdef ZerosTest < matlab.unittest.TestCase
    properties (TestParameter)
        type = {'single','double','uint16'};
        size = struct("s2d",[3 3],"s3d",[2 5 4]);
    end
    
    methods (Test)
        function testClass(testCase,size,type)
            testCase.verifyClass(zeros(size,type),type)
        end
        
        function testSize(testCase,size)
            testCase.verifySize(zeros(size),size)
        end
        
        function testDefaultClass(testCase)
            testCase.verifyClass(zeros,"double")
        end
        
        function testDefaultSize(testCase)
            testCase.verifySize(zeros,[1 1])
        end
        
        function testDefaultValue(testCase)
            testCase.verifyEqual(zeros,0)
        end
    end
end

从基于函数的测试文件中创建一个测试套件。

import matlab.unittest.TestSuite
suite1 = TestSuite.fromFile("eyeTest.m");

ZerosTest 测试类创建一个测试套件,只包括参数化的测试。

suite2 = TestSuite.fromClass(?ZerosTest,"ParameterProperty","*");

串联这些测试套件并运行生成的套件。成功通过所有测试。

fullSuite = [suite1 suite2];
results = run(fullSuite);
Running eyeTest
.....
Done eyeTest
__________

Running ZerosTest
........
Done ZerosTest
__________

版本历史记录

在 R2013a 中推出

全部展开