基于模型的测试

为了自动化执行基于模型的测试用例,您需要为模型中的每个步骤定义一个实现。每个模型都包含一个同名的伴随脚本文件。例如,模型文件命名为 example.mbtmodel,脚本文件命名为 example.pyexample.jsexample.plexample.rbexample.tcl,具体取决于您选择的脚本语言。

在模型文件中遇到每个步骤时,Squish 都会尝试在脚本文件中找到与步骤文本匹配的模式。

使用 Step 定义步骤实现

步骤实现通过调用预定义的 Step 函数来定义。一个简单的定义如下

@mbt.step("Start the address book")
def step():
    startApplication("Addressbook")
mbt.step("Start the address book", function() {
    startApplication("Addressbook");
});
mbt::step("Start the address book", sub {
    startApplication("Addressbook");
});
Mbt::step("Start the address book") do
    Squish::startApplication("addressbook")
end
mbt step "Start the address book" {} {
    startApplication "Addressbook"
}

在此示例中,匹配 "启动通讯录" 模式的步骤将导致 Squish 执行以下代码。

startApplication("addressbook")
startApplication("addressbook");
startApplication("addressbook");
Squish::startApplication("addressbook")
startApplication addressbook

步骤文本

步骤文本必须与模式完全匹配。匹配是锚定到开始和结束的。其前后不应有任何文本。

限制

在基于模型的测试中定义使用 Step 函数的步骤与在行为驱动测试中定义步骤相比有限。在步骤模式中无法使用占位符或正则表达式。

运行测试用例

您可以使用 mbt.runTestCase 函数来执行基于模型的测试用例,如下例所示。要使用此函数,您需要提供测试用例文件的名称作为参数。

mbt.runTestCase("test.mbttest")
mbt.runTestCase("test.mbttest");
mbt::runTestCase("test.mbttest");
Mbt::runTestCase("test.mbttest")
mbt runTestCase "test.mbttest"

©2024 Qt 公司有限公司。本节中包含的文档贡献归各自的所有者所有。
本手册中的文档根据 Free Software Foundation 发布的 GNU 自由文档许可证版本 1.3 的条款颁发。
Qt 和相关徽标是芬兰的 Qt 公司以及全球其他国家的商标。所有其他商标都是其各自所有者的财产。