主要内容

sldv.test

用于 Stateflow 图和 MATLAB Function 模块的测试目标函数

说明

sldv.test(expr) 指定在生成测试时 expr 为 true。可以对 expr 使用任何有效的布尔表达式。

此函数没有输出,也不会对其父函数产生任何影响,但会对计算 expr 产生间接副作用。如果从 MATLAB® 命令行发出该函数,则该函数无效。

可以在代码中穿插使用 sldv.test 测试目标,也可以将目标单独放在验证脚本中。

测试生成窗格中的测试目标选项适用于由 sldv.test 函数和 Test Objective 模块表示的测试目标。

示例

示例

全部折叠

使用 MATLAB Function 模块添加测试目标和测试条件。

打开 sldvdemo_cruise_control 模型和并将其另存为 ex_sldvdemo_cruise_control。您可以使用以下命令打开模型:

openExample('sldv/CruiseControlTestGenerationExample',...
'supportingFile', 'sldvdemo_cruise_control')

speed 信号中删除 Test Condition 模块。此示例使用 sldv.testsldv.condition,而不是使用 Test Condition 模块。

从 User-Defined Functions 库中,添加一个 MATLAB Function 模块。

  • 将该模块命名为 tests

  • 打开该模块并添加以下代码:

    function define_tests(speed, target)
    %#codegen
    
    sldv.condition(speed >= 0 && speed <= 100);
    sldv.test(speed > 60 && target > 40 && target < 50);
    sldv.test(speed < 20 && target > 50);
  • 保存模型并返回到顶层模型。

  • 将该模块连接到 speed 模块和 target 模块的信号。

保存对 ex_sldvdemo_cruise_control 模型的更改。

要生成测试用例,请在 Design Verifier 选项卡上点击生成测试

输入参数

全部折叠

测试表达式,指定为布尔表达式。例如,x > 0

备选方法

除了使用 sldv.test 函数外,您还可以在模型中插入 Test Objective 模块。要了解 Test Objective 模块与 sldv.test 之间的区别,请参阅测试生成工作流

版本历史记录

在 R2009b 中推出