黄瓜

时间:2018-04-17 07:39:29

标签: cucumber gherkin cucumberjs

我想知道是否可以在黄瓜中编写通用的step_definitions,可以在需要时用于Given,When或Then场景。例如:

Given the browser is started
When I navigate to my webpage
Then the element with id login is present

Given the element with id login is present
When I press the button
Then something should happen

在这种情况下,我想为创建一个具有id login的元素的step_definition ,可以在Given和Then子句中使用。

使用Javascript,我可以输入:

defineSupportCode(({ Given, Then }) => {
    Then(/^Element with id (.+) is present$/, (name) => {
        return client.expect.element("#" + name).to.be.present;    
    });
});

虽然如果我在defineSupportCode中提供Given和Then(即使我不明白为什么),这似乎也有效,但将步骤本身指定为Then则感觉不对。我宁愿将它定义为Generic或类似的东西。当然,我可以将场景写成:

* the element with id login is present

但这也是我实际上不喜欢的事情。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:1)

黄瓜的步骤是全球性的。

黄瓜本身并不关心步骤的方法名称。它使用正则表达式匹配要执行的方法。这意味着您可以创建所需的常规步骤。