通过 when 分解验证模型仿真
在 Test Assessment 模块中,您可以使用 verify 分解序列定义激活包含 when 语句的步骤的仿真条件。在 when 分解序列中,步骤根据您定义的仿真条件激活。有关 when 分解序列的更多信息,请参阅 测试序列基础知识.
verify 语句评估逻辑表达式并为每个时间步骤和整体仿真返回 pass、fail 或 untested 结果。任何时间步骤的 fail 结果都会导致整体仿真的 fail 结果。如果没有出现失败的结果,则任何时间步骤中的 pass 都会导致整个仿真的 pass 结果。否则,总体结果是 untested。然后,如果您在没有测试用例的情况下运行仿真,则可以在测试管理器或仿真数据检查器中查看测试结果。您可以选择仅显示 pass 和 fail 语句,方法是仅记录已测试的 verify 语句的结果。有关编写 verify 语句的更多信息,请参阅 verify.
您可以在 when 分解中编写 verify 语句:
如果您的模型不使用 Test Sequence 模块作为源,或者您的测试序列步骤与要验证的条件不符。在这种情况下,您可以使用信号条件激活每个
verify语句。如果您的模型使用 Test Sequence 模块作为源。在这种情况下,您可以使用活动 Test Sequence 模块步骤来激活 Test Assessment 模块中的
verify语句。请参阅使用活动步进输出作为另一个模块的输入。
使用信号条件激活 verify 语句
此示例演示了如何在测试框架中使用 verify 语句在 when 分解中于 Test Assessment 模块内编写评估。
该模型实现了一个简单的信号跟踪器,以三种模式运行:关闭、慢速和快速。

为了观测输出和误差信号,仿真模型。

打开测试框架
SimpleTracker 子系统包含一个包含 Test Assessment 模块的测试框架。

Test Assessment 模块通过在 when 分解中使用 verify 语句,评估 SimpleTracker 子系统的行为.

CheckError 步骤具有一个 when 分解,包含三个子步骤:
当
OffMode的值为mode时,0处于活动状态。当
SlowMode的值为mode时,1处于活动状态。QuickMode对于mode的所有其他值均活动。
运行模型评估
要运行评估,仿真测试框架。打开仿真数据检查器来检查结果。


仅记录测试过的 verify 结果
要仅记录和显示 pass 和 fail 结果,请在 框架选项卡中点击隐藏未经测试的结果。仿真测试框架并打开仿真数据检查器。仿真数据检查器不显示 untested 结果。

使用测试序列步骤激活 verify 语句
如果您的模型使用测试序列作为模块源,则可以使用来自 Test Sequence 模块的活动步进信号连接测试序列和 Test Assessment 模块。您可以在 Test Assessment 模块中创建一个 when 分解,并定义 verify 语句来评估模型仿真.
例如,Harness1_TestSeqAndTestAssessment 框架包含一个 Test Sequence 和 Test Assessment 模块。Active_Step 信号连接各个模块。

Test Assessment 模块包含一个由四个子步骤组成的 when 分解序列。每个子步骤包含一个 verify 语句,该语句评估两个逻辑表达式。每个 verify 语句与不同的 Test Sequence 模块步骤关联并激活。
本例中的 Else 步骤没有任何操作,处理与前面的任何 when 条件都不匹配的仿真条件。此步骤不能包含 when 条件。

要使用 Test Sequence 模块中的活动步骤激活测试评估中的 verify 语句,请为 Test Sequence 模块创建活动步骤数据输出。选择 Test Sequence 模块,然后在属性检查器中选择创建数据以监视活动步骤,并将数据类型设置为 Enum。在枚举名称中输入名称。

然后,为 Test Assessment 模块创建输入数据。打开 Test Assessment 模块,在符号窗格中,指向输入,点击添加数据
,然后命名输入。将 Test Sequence 模块输出连接到 Test Assessment 模块输入。
在 Test Assessment 模块中创建一个 when 分解。默认情况下,Test Assessment 模块具有 when 分解序列。要在标准序列和 when 分解序列之间切换,右键点击父步骤并选择当分解时。对于每个 when 分解步骤,使用活动步骤枚举数据来定义该步骤何时处于活动状态。
VerifyBoth when TSActiveStepIN == ... TSActiveStepEnum.PressBothButtons
另请参阅
测试序列编辑器 | Test Sequence | Test Assessment | verify | sltest.testmanager.Assessment | sltest.testmanager.AssessmentSymbol | sltest.testmanager.TestCase