Cucumber - 场景

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

场景 : 验证帮助功能.

指定用户导航到Facebook.

当用户点击"帮助"时,"帮助"页面会打开.

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

场景大纲类似于场景结构;唯一的区别是提供多个输入.正如您在以下示例中所看到的,测试用例保持不变且不可重复.在底部,我们为变量"Username"和"Password"提供了多个输入值.在运行实际测试时,Cucumber将使用提供的输入值替换变量,它将执行测试.一旦执行了pass-1,测试将以另一个输入值重新运行第二次迭代.这些变量或占位符可以用"<>"表示,同时提及小金刚语句.

示例

场景大纲 : 社交网站的登录功能.给定用户导航到Facebook.

当用户使用用户名登录为"< username>"时密码为"< password>",然后登录应该成功.

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


智能定义黄瓜方案有一些提示和技巧.

  • 每个步骤都应该明确定义,这样就不会给读者造成任何混淆.

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

  • 以一种方式开发测试步骤,它可以在多个场景和场景轮廓中使用./p>

  • 尽可能保持每一步完全独立.例如:"鉴于用户已登录".这可以分为两个步骤

    • 给定用户输入用户名.

    • 点击次数登录.