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

matlab.unittest.qualifications.Verifiable 类

包: matlab.unittest.qualifications

产生软故障条件的验证

说明

Verifiable 类提供用于生成软故障条件的验证。除了对失败执行的操作外,Verifiable 类与其他 matlab.unittest 验证的工作方式相同。

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

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

方法

verifyClass确认指定值的确切类
verifyEmpty确认值为空
verifyEqual确认值等于指定值
verifyError确认函数遇到指定异常
verifyFail生成无条件的确认失败
verifyFalse确认值为 false
verifyGreaterThan确认值大于指定值
verifyGreaterThanOrEqual确认值大于或等于指定值
verifyInstanceOf确认值是指定类型的对象
verifyLength确认值具有指定长度
verifyLessThan确认值小于指定值
verifyLessThanOrEqual确认值小于或等于指定值
verifyMatches确认字符串与指定的正则表达式匹配
verifyNotEmpty确认值不为空
verifyNotEqual确认值不等于指定值
verifyNotSameHandle确认值不是指定实例的句柄
verifyNumElements确认值具有指定的元素计数
verifyReturnsTrue确认计算时函数返回 true
verifySameHandle确认两个值是同一实例的句柄
verifySize确认值具有指定大小
verifySubstring确认字符串包含指定字符串
verifyThat确认值满足指定约束
verifyTrue确认值为 true
verifyWarning验证函数发出指定的警告
verifyWarningFree确认函数未发出警告

事件

VerificationFailed

验证失败时触发。QualificationEventData 对象传递给侦听程序回调函数。

VerificationPassed

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

复制语义

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

示例

全部折叠

验证会产生并记录失败而不引发异常,这意味着当前运行的测试会一直运行到完成。此示例创建一个测试用例来验证对 DocPolynom 示例类对象进行的算术运算。

创建 DocPolynomTest 测试用例。在此示例的后续步骤(高亮文件中的特定函数)中,请参阅以下 DocPolynomTest 测试用例。

 DocPolynomTest 类定义文件

要在此示例中执行 MATLAB® 命令,请将 DocPolynomTest.m 文件添加到 MATLAB 路径上的文件夹。

编写测试以验证构造函数。创建一个函数 testConstructor,并使用 verifyClass 方法测试 DocPolynom 类构造函数。

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

编写测试以验证运算。在 testAddition 函数中,使用 verifyEqual 方法测试方程 (x^2 + 1) + (5*x + 2) = x^2 + 5*x + 3verifyEqual 方法将此方程包括在 diagnostic 参数中。

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

函数 testMultiplication 测试乘法运算。

DocPolynomTest 测试用例中运行测试。

tc = DocPolynomTest;
ts = matlab.unittest.TestSuite.fromClass(?DocPolynomTest);
res = run(ts);
Running DocPolynomTest
...
Done DocPolynomTest
__________

所有测试都已通过。

在 R2013a 中推出