Main Content

matlab.unittest.qualifications.Verifiable 类

命名空间: matlab.unittest.qualifications

产生软失败条件的鉴定

描述

Verifiable 类提供用于生成软失败条件的鉴定。除了对失败执行的操作外,Verifiable 类与 matlab.unittest.qualifications 命名空间中的其他鉴定类的工作方式相同。

确认失败时,Verifiable 类会通知测试框架这次失败,在其中包含有关这次失败的所有诊断信息,但仍会继续执行当前运行的测试,而不会引发异常。如果确认点处的失败对于剩余的测试内容不构成重大影响,此行为会很有用。通常,您会将确认作为四阶段测试的主要鉴定手段。使用假设、断言和致命断言等其他鉴定类型来测试是否违反先决条件或测试安装是否正确。

由于验证不会引发异常,因此即使出现测试失败的情形,依然会完成所有的测试内容。此行为有助于您了解如何关闭一部分软件以满足测试套件要求。引发异常的鉴定类型不能提供此类信息,因为一旦引发异常,便会保留一定数量的未达代码或未执行代码。确认还为失败条件下的测试提供了更大的测试范围。但是,在您过度使用确认时,它们便可能在单一失败下产生过多的噪声。如果失败会导致后面的鉴定点发生失败,请改用断言或致命断言。

matlab.unittest.qualifications.Verifiable 类是一个 handle 类。

方法

全部展开

事件

事件名称触发器事件数据事件属性
VerificationFailed验证失败时触发。QualificationEventData 对象传递给侦听程序回调函数。matlab.unittest.qualifications.QualificationEventData

NotifyAccess: private

ListenAccess: public

VerificationPassed通过验证时触发。QualificationEventData 对象传递给侦听程序回调函数。matlab.unittest.qualifications.QualificationEventData

NotifyAccess: private

ListenAccess: public

示例

全部折叠

使用验证来测试 DocPolynom 类,该类在 MATLAB® 中表示多项式。有关该类的详细信息以及查看类代码,请参阅Representing Polynomials with Classes

在当前文件夹内一个名为 DocPolynom.m 的文件中创建 DocPolynom 类。要测试 DocPolynom 类的不同方法,请在当前文件夹内另一个名为 DocPolynomTest.m 的文件中创建 DocPolynomTest 类。在 DocPolynomTest 类中定义三个 Test 方法:

  • testConstructor 方法 - 使用 verifyClass 测试 DocPolynom 类构造函数。

  • testAddition 方法 - 使用 verifyEqual 来测试 DocPolynom 对象的相加性。

  • testMultiplication 方法 - 使用 verifyEqual 来测试 DocPolynom 对象的相乘性。

classdef DocPolynomTest < matlab.unittest.TestCase
    properties
        TextToDisplay = "Equation under test: "
    end

    methods (Test)
        function testConstructor(testCase)
            p = DocPolynom([1 0 1]);
            testCase.verifyClass(p,?DocPolynom)
        end

        function testAddition(testCase)
            p1 = DocPolynom([1 0 1]);
            p2 = DocPolynom([5 2]);
            actual = p1 + p2;
            expected = DocPolynom([1 5 3]);
            diagnostic = [testCase.TextToDisplay ...
                "(x^2 + 1) + (5*x + 2) = x^2 + 5*x + 3"];
            testCase.verifyEqual(actual,expected,diagnostic)
        end

        function testMultiplication(testCase)
            p1 = DocPolynom([1 0 3]);
            p2 = DocPolynom([5 2]);
            actual = p1 * p2;
            expected = DocPolynom([5 2 15 6]);
            diagnostic = [testCase.TextToDisplay ...
                "(x^2 + 3) * (5*x + 2) = 5*x^3 + 2*x^2 + 15*x + 6"];
            testCase.verifyEqual(actual,expected,diagnostic)
        end
    end
end

DocPolynomTest 类中运行测试。在此示例中,所有测试都通过。

runtests("DocPolynomTest")
Running DocPolynomTest
...
Done DocPolynomTest
__________
ans = 
  1×3 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   3 Passed, 0 Failed, 0 Incomplete.
   0.26915 seconds testing time.

版本历史记录

在 R2013a 中推出