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

matlab.unittest.qualifications.FatalAssertable 类

包: matlab.unittest.qualifications

用于中止测试执行的验证

说明

FatalAssertable 类提供用于中止测试执行的验证。除了对失败执行的操作外,FatalAssertable 类与 matlab.unittest 验证的工作方式相同。

致命断言失败时,FatalAssertable 类会引发 FatalAssertionFailedException 以告知测试框架发生失败。然后,测试运行框架会显示与失败有关的诊断信息并中止整个测试会话。当所测试的软件中包含太多错误,继续测试会话已经没有意义时,使用此方法会很有用。此外,您还可以在脚手架拆卸中使用致命断言,确保脚手架状态得以正确恢复。如果不能恢复,则中止整个测试会话,并指示重新启动 MATLAB®,然后您再继续测试。这样可以确保在一致的 MATLAB 状态下运行后续测试。如果您可以恢复脚手架拆卸,并可使其满足失败的异常安全条件,则请改用断言。

致命断言可避免由于基本测试失败引起的 false 测试失败。它们还能在上一个测试无法恢复测试脚手架时避免 false 测试失败。如果测试框架无法正确拆卸脚手架,请重新启动 MATLAB 以确保在干净状态下继续测试。

方法

fatalAssertClass致命断言指定值的确切类
fatalAssertEmpty致命断言值为空
fatalAssertEqual致命断言值等于指定值
fatalAssertError致命断言函数引发指定异常
fatalAssertFail生成无条件的致命断言失败
fatalAssertFalse致命断言值为 false
fatalAssertGreaterThanOrEqual致命断言值大于或等于指定值
fatalAssertInstanceOf致命断言值是指定类型的对象
fatalAssertLength致命断言值具有指定长度
fatalAssertLessThan致命断言值小于指定值
fatalAssertLessThanOrEqual致命断言值小于或等于指定值
fatalAssertMatches致命断言字符串与指定的正则表达式匹配
fatalAssertNotEmpty致命断言值不为空
fatalAssertNotEqual致命断言值不等于指定值
fatalAssertNotSameHandle致命断言值不是指定实例的句柄
fatalAssertNumElements致命断言值具有指定的元素计数
fatalAssertReturnsTrue致命断言计算时函数返回 true
fatalAssertSameHandle致命断言两个值是同一实例的句柄
fatalAssertSize致命断言值具有指定大小
fatalAssertSubstring致命断言字符串包含指定字符串
fatalAssertThat致命断言值满足指定约束
fatalAssertTrue致命断言值为 true
fatalAssertWarning致命断言函数发出指定的警告
fatalAssertWarningFree致命断言函数未引发警告

事件

FatalAssertionFailed

致命断言失败时触发。QualificationEventData 对象传递给侦听程序回调函数。

FatalAssertionPassed

通过致命断言时触发。QualificationEventData 对象传递给侦听程序回调函数。

复制语义

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

示例

全部折叠

致命断言呈现当前测试方法的其余部分无效,因为该状态不可恢复。辅助函数TestCase 类中的一个函数,但它不位于任何 methods 块语句内。这些函数的执行不由 matlab.unittest 框架控制。

DocPolynomSaveLoadTest.m 文件添加到 MATLAB 路径中的一个文件夹。请参阅 DocPolynomSaveLoadTest 测试用例中的辅助函数 cleanUpTemporaryFolder

 DocPolynomSaveLoadTest 类定义文件

通过将 cleanUpTemporaryFolder 函数置于一个单独的 methods 块中来使其成为辅助函数。

methods(Access=private) 
    function cleanUpTemporaryFolder(testCase, tempFolder) 
        % code 
    end 
end 

使用 fatalAssertTrue 方法测试 rmdir success 参数有无错误。如果出现致命断言,则中止测试运行。

function cleanUpTemporaryFolder(testCase, tempFolder) 
     
    import matlab.unittest.diagnostics.Diagnostic
     
    [success, message] = rmdir(tempFolder, 's'); 
    testCase.fatalAssertTrue(success, ... 
        Diagnostic.join('Could not remove the temporary folder.',... 
        message))
end 

如果 rmdir 函数失败,则说明此测试未能还原 MATLAB 和计算机在初始启动时的状态。中止可防止后续测试失败,这是因为 MATLAB 被此测试置于意外状态。

详细信息

全部展开

在 R2013a 中推出