【问题标题】:Gherkin Data Table using Node.js (and WebdriverIO)使用 Node.js(和 WebdriverIO)的 Gherkin 数据表
【发布时间】:2017-07-20 21:41:13
【问题描述】:

我想在 Node.js 中实现一个涉及数据表的 Gherkin 步骤,但我不确定应该如何传入数据。这是一个我知道的不使用数据表的示例。

test.feature

Feature: Testing login
  Scenario: Logging in with credentials
    When I login with credentials "user@example.com" and "p@ssw0rd"

login.js

import loginAsCreds from './loginAsCreds'

module.exports = function when () {
  this.When(
    /^I login as "(.+)" and "(.+)"/i,
      loginAsCreds
  )

loginAsCreds.js

module.exports = (email, password, done) => {
    browser.element('#email').keys(email)
    browser.element('#password').keys(password)
    browser.element('#signInButton').click()

    done()
}

这是我希望功能文件的样子。

test-desired.feature

Feature: Testing login
  Scenario: Logging in with credentials
    When I login with credentials:
      | user@example.com | p@ssw0rd |

我尝试了一些方法来修改 login.js 以传递数据表和 loginAsCreds.js 以接受它,但我是 Node.js 和 WebdriverIO(但不是 Selenium 或 Gherkin)的新手。有人可以指出我正确的方向吗?数据表对于我计划编写的其他步骤也非常有用。谢谢!

【问题讨论】:

标签: javascript node.js cucumber gherkin webdriver-io


【解决方案1】:

有人将我指向cucumber js 文档。我不知道要搜索那个,所以我找到了这个页面:

https://github.com/cucumber/cucumber-js/blob/9959ca9fd9f8c64f0b5133f9bb241da9b854e570/README.md

...这表明我需要将.raw() 添加到我的参数中以访问数据(因为表是二维数组),并指向此示例:

https://github.com/cucumber/cucumber-js/blob/9959ca9fd9f8c64f0b5133f9bb241da9b854e570/features/data_tables.feature

这就是我的代码现在的样子:

test-desired.feature

Feature: Testing login
  Scenario: Logging in with credentials
    When I login with credentials:
      | user@example.com | p@ssw0rd |

login.js

import loginAsCreds from './loginAsCreds'

module.exports = function when () {
  this.When(
    /^I login as:/i,
      loginAsCreds
  )

loginAsCreds.js

module.exports = (creds, done) => {
  email = creds.raw()[0][0]
  password = creds.raw()[0][1]

  browser.element('#email').keys(email)
  browser.element('#password').keys(password)
  browser.element('#signInButton').click()

  done()
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 2015-09-10
    相关资源
    最近更新 更多