本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

创建简单测试套件

此示例演示如何使用 SolverTest 测试用例将测试合并到测试套件中。使用 matlab.unittest.TestSuite 类中的静态 from* 方法为您的测试组合创建套件,无论它们是按数据包和类还是文件和文件夹(或同时按这两项)组织。

创建二次求解器函数

创建以下函数来对您的工作文件夹下的文件 quadraticSolver.m 中二次方程的根求解。

function roots = quadraticSolver(a, b, c)
% quadraticSolver returns solutions to the 
% quadratic equation a*x^2 + b*x + c = 0.

if ~isa(a,'numeric') || ~isa(b,'numeric') || ~isa(c,'numeric')
    error('quadraticSolver:InputMustBeNumeric', ...
        'Coefficients must be numeric.');
end

roots(1) = (-b + sqrt(b^2 - 4*a*c)) / (2*a);
roots(2) = (-b - sqrt(b^2 - 4*a*c)) / (2*a);

end

为二次求解器函数创建测试

在您的工作文件夹下的文件 SolverTest.m 中,创建以下测试类。

classdef SolverTest < matlab.unittest.TestCase
    % SolverTest tests solutions to the quadratic equation
    % a*x^2 + b*x + c = 0
    
    methods (Test)
        function testRealSolution(testCase)
            actSolution = quadraticSolver(1,-3,2);
            expSolution = [2,1];
            testCase.verifyEqual(actSolution,expSolution);
        end
        function testImaginarySolution(testCase)
            actSolution = quadraticSolver(1,2,10);
            expSolution = [-1+3i, -1-3i];
            testCase.verifyEqual(actSolution,expSolution);
        end
    end
    
end

导入 TestSuite 类

在命令提示符下,将 matlab.unittest.TestSuite 类添加到当前导入列表。

import matlab.unittest.TestSuite

确保 SolverTest 类定义文件在您的 MATLAB® 路径上。

从 SolverTest 类创建套件

fromClass 方法从 SolverTest 类中的所有 Test 方法创建一个套件。

suiteClass = TestSuite.fromClass(?SolverTest);
result = run(suiteClass);

从 SolverTest 类定义文件创建套件

fromFile 方法使用标识该类的文件的名称创建一个套件。

suiteFile = TestSuite.fromFile('SolverTest.m');
result = run(suiteFile);

从当前文件夹中的所有测试用例文件创建套件

fromFolder 方法从指定文件夹中的所有测试用例文件创建一个套件。例如,以下文件在当前文件夹中:

  • BankAccountTest.m

  • DocPolynomTest.m

  • FigurePropertiesTest.m

  • IsSupportedTest.m

  • SolverTest.m

suiteFolder = TestSuite.fromFolder(pwd);
result = run(suiteFolder);

从单个测试方法创建套件

fromMethod 方法从单个测试方法创建套件。

suiteMethod = TestSuite.fromMethod(?SolverTest,'testRealSolution')'
result = run(suiteMethod);

另请参阅

相关主题