Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

verifyThat

类: matlab.unittest.qualifications.Verifiable
包: matlab.unittest.qualifications

确认值满足指定约束

语法

verifyThat(verifiable,actual,constraint)
verifyThat(___,diagnostic)

说明

verifyThat(verifiable,actual,constraint) 确认 actual 是一个满足所提供的 constraint 的值

如果不满足约束,则会发生确认失败,仅利用 constraint 生成的框架诊断。

verifyThat(___,diagnostic) 还将 diagnostic 中的诊断信息与验证相关联。根据测试运行程序的配置,测试框架可能会在验证通过或失败时显示诊断信息。默认情况下,框架仅在验证失败时显示诊断信息。您可以通过自定义测试运行程序来覆盖默认行为。例如,使用 DiagnosticsOutputPlugin 实例来显示失败和通过事件诊断信息

使用该签名时,除了 diagnostic 提供的诊断信息,还使用 constraint 内包含的诊断信息。

输入参数

verifiable

matlab.unittest.TestCase 实例,与测试运行框架配合使用来使验证通过还是失败。

actual

要测试的值。

constraint

实际值要通过验证而必须满足的约束,指定为 matlab.unittest.constraints 实例。

diagnostic

与验证相关的诊断信息,指定为以下类型之一:

  • 字符串数组

  • 字符数组

  • 函数句柄

  • matlab.unittest.diagnostics.Diagnostic 对象

诊断值可以是非标量。有关详细信息,请参阅 matlab.unittest.diagnostics.Diagnostic

示例

全部展开

testCase = matlab.unittest.TestCase.forInteractiveUse;

% Passing scenarios
%%%%%%%%%%%%%%%%%%%%
import matlab.unittest.constraints.IsTrue
verifyThat(testCase, true, IsTrue)
 
import matlab.unittest.constraints.IsEqualTo
verifyThat(testCase, 5, IsEqualTo(5), '5 should be equal to 5')
 
import matlab.unittest.constraints.IsGreaterThan
import matlab.unittest.constraints.HasNaN
verifyThat(testCase, [5 NaN], IsGreaterThan(10) | HasNaN, ...
    'The value was not greater than 10 or NaN')
 
 
% Failing scenarios
%%%%%%%%%%%%%%%%%%%%
import matlab.unittest.constraints.AnyCellOf
import matlab.unittest.constraints.ContainsSubstring
verifyThat(testCase, AnyCellOf({'cell','of','strings'}), ...
    ContainsSubstring('char'),'Test description')
 
import matlab.unittest.constraints.HasSize
verifyThat(testCase, zeros(10,4,2), HasSize([10,5,2]), ...
    @() disp('A function handle diagnostic.'))
 
import matlab.unittest.constraints.IsEmpty
verifyThat(testCase, 5, IsEmpty)

提示

  • 使用此确认在不引发异常的条件下生成和记录失败。由于确认不会引发异常,因此即使出现确认失败的情形,依然会完成所有的测试内容。通常,确认指的是对单元测试的主要验证,因为这些确认一般不要求提前从测试中退出。使用其他验证类型来测试是否违反先决条件或测试安装是否正确。或者,

    • 使用断言验证确保测试环境满足无论如何都不会导致测试失败的先决条件。假设失败会生成已筛选的测试,且测试框架会将测试设为 Incomplete。有关详细信息,请参阅 matlab.unittest.qualifications.Assumable

    • 当失败情况导致当前测试内容的剩余部分都失效,但不会阻止后续测试方法正确执行时,使用断言验证。断言点处的失败会将当前测试方法展现为失败且未完成。有关详细信息,请参阅 matlab.unittest.qualifications.Assertable

    • 使用致命断言验证在失败时中止测试会话。当失败涉及根本以致没必要继续测试时,这种验证会很有用。当脚手架拆解未能正确还原 MATLAB® 状态,适合中止测试并启动一个新会话时,这些验证也很有用。有关详细信息,请参阅 matlab.unittest.qualifications.FatalAssertable

在 R2013a 中推出