Cucumber - 场景


场景是 Gherkin 的核心结构之一。每个场景都以关键字“Scenario:”(或本地化的关键字)开头,后面跟着一个可选的场景标题。每个功能可以有一个或多个场景,每个场景都包含一个或多个步骤。一个非常简单的场景示例可以是 -

场景- 验证帮助功能。

给定用户导航至 Facebook。

当用户单击“帮助”时,将打开“帮助”页面。

考虑一种情况,我们需要多次执行测试场景。假设,我们需要确保登录功能适用于所有类型的订阅持有者。这需要多次执行登录功能场景。复制粘贴相同的步骤以便重新执行代码,似乎不是一个聪明的主意。为此,Gherkin 又提供了一种结构,即场景大纲。

场景大纲与场景结构类似;唯一的区别是提供多个输入。正如您在以下示例中看到的,测试用例保持相同且不可重复。在底部,我们为变量“用户名”和“密码”提供了多个输入值。在运行实际测试时,Cucumber 会将变量替换为提供的输入值,然后执行测试。执行 pass-1 后,测试将使用另一个输入值重新运行第二次迭代。此类变量或占位符可以用“<>”表示,同时用小Cucumber语句提及。

例子

场景大纲- 社交网站的登录功能。给定用户导航至 Facebook。

当用户使用用户名“<用户名>”和密码“<密码>”登录时,登录应该成功。

| username | password  | 
| user1    | password1 | 
| user2    | password2 |

有一些提示和技巧可以帮助您巧妙地定义 Cucumber 场景。

  • 每个步骤都应该明确定义,以免给读者造成任何混乱。

  • 不要重复测试场景,如果需要可以使用场景大纲来实现重复。

  • 以可在多个场景和场景大纲中使用的方式开发测试步骤。

  • 尽可能保持每个步骤完全独立。例如:“假设用户已登录”。这可以分为两个步骤

    • 鉴于用户输入用户名。
    • 点击登录。