Main Content

本页采用了机器翻译。点击此处可查看英文原文。

verify

评估逻辑表达式并自动记录结果

描述

示例

verify(expression) 评估标量逻辑 expressiontruefalse

示例

verify(expression,errorMessage) 返回失败的 verify 语句的指定错误消息。如果您在测试管理器中运行测试,则错误消息将出现在仿真日志中。如果在测试管理器之外运行测试,则消息会出现在诊断查看器中。errorMessage 是一个字符数组,您可以使用 sprintf 来格式化它。但是,您不能在 Stateflow® 图中的字符串或字符数组中使用 sprintf 格式。

注意

在实时环境中,verify 语句失败不会产生警告。但是,如果您在测试管理器中运行实时测试用例,则失败将显示在测试用例结果的验证语句部分中。您还可以使用 getVerifyRuns 访问有关 verify 运行的信息

示例

verify(expression,identifier,errorMessage) 使用 identifier 作为测试结果的标签。identifier 在测试管理器中用作信号标签。如果在测试管理器之外运行测试,则标签会出现在仿真数据检查器中,如果失败,则会出现在诊断查看器中。identifier 是一个字符数组,具有至少两个以冒号分隔的 MATLAB® 标识符。

示例

全部展开

verify(x > y && z > 10)

如果此 verify 语句失败,它将返回一条错误消息,列出 xyz 的值。

verify(x > y && z > 10,'x, y, and z are %d,%d,%d',x,y,z)

verify 语句的结果以标签 TestReq1:bothGreater 开头,如果测试失败,则显示错误消息。

verify(x > y && z > 10,'TestReq1:bothGreater',...
   'x, y, and z are %d,%d,%d',x,y,z)

此 Stateflow 图的 Scenario1 状态中的第二步验证目标是否等于 60。

Stateflow chart with verify statement

提示

  • 您可以在Test Sequence和 Test Assessment 模块以及 Stateflow 图中使用 verify 语句。使用图需要 Stateflow 许可证。图中的 verify 语句在与 Test Sequence 模块相同的位置、执行模式和相同的代码生成目标中受支持。

  • 您不能在以下情况下使用 verify 语句:

    • 使用连续时间更新的 Test Sequence 模块。Test Sequence 模块数据可能取决于求解器步进时间等因素。连续时间更新可能会导致模块数据和 verify 语句更新时间出现差异,从而导致意外的 verify 语句结果。如果您的模型使用连续时间,并且您在 Test SequenceTest Assessment 模块中使用 verify 语句,请考虑明确设置离散模块采样时间。

    • Moore、Mealy、离散事件或连续图

    • 使用 C 作为动作语言的图

    • 在图中绑定操作

    • 图中的转移或条件操作

    • MATLAB 函数、图形函数或图中的真值表

    • MATLAB 函数或 Truth Table 模块

    • 快速加速器模式仿真

    • Simulink® Real-Time™ 和 HDL Verifier™ 之外的代码生成目标

    • 独立的 Stateflow 图

  • 如果您使用并行测试执行来运行测试,那么您就无法使用测试管理器中的在模型中突出显示按钮来获取 verify 结果。

  • 您不能在 When 分解中在 when 之后立即使用 verify 作为条件,因为 verify 语句不会产生输出。但是,您可以使用 verify 语句作为 When 分解步骤中的操作。参见 使用 When 分解评估模型

  • verify 语句中比较浮点数据时,请考虑与浮点数相关的精度限制。如果需要使用浮点数据,请为验证定义一个容差。例如,不要验证 verify(x == 5),而是验证 x,容差为 0.001:

    verify(abs(x-5) < 0.001)
    有关更多信息,请参阅 浮点数

版本历史记录

在 R2016a 中推出