黄瓜 - Javascript在其他步骤定义之前调用登录步骤定义

时间:2016-02-02 09:07:55

标签: testing bdd cucumberjs webdriver-io chimp.js

使用Chimp.js,Cucumberjs和WebdriverIO,我尝试在依赖用户登录的其他步骤定义之前在浏览器实例中运行登录步骤定义。并且可能没有将它们添加到{ {1}}一遍又一遍地为每个要素文件。

这可能吗?我对Wedbdriver.io和Cucumber很新,任何建议都会有很大的帮助。如果需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

我个人认为这不是一个好主意。要记录某人,你必须指定用户是谁。稍后当您的应用程序变得更复杂时,您可能会在不同用户之间进行交从场景中隐藏任何这一点并不好。

您可以做的是在一个步骤中结合用户规范和登录,例如

Given I am logged in as an admin
Given Fred is logged in as a sales executive

如果你对如何实现这些步骤很聪明,你可以通过从步骤定义中提取辅助方法并使用全局变量存储人来保持相当干燥,例如

Given 'I am logged in as an admin' do
  @i = create_user role: admin
  login as: admin, user: @i

并在其他登录步骤中重用这些方法。

如果你能很好地整理你的功能,你可以背景很多这些来电,例如

Feature: Basic admin ops
  Background: 
    Given I am logged in as an admin

  Scenario: I can foo
    When I foo

  Scenario: I can bar
    When I bar

最后的想法......

每个场景都是为了推动特定的开发。与开发写作相比,“鉴于我已登录”是微不足道的。

当出现问题时,知道您应该登录是一个必不可少的信息。

相关问题