我想知道是否可以在黄瓜中编写通用的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
但这也是我实际上不喜欢的事情。我在这里错过了什么吗?
答案 0 :(得分:1)
黄瓜的步骤是全球性的。
黄瓜本身并不关心步骤的方法名称。它使用正则表达式匹配要执行的方法。这意味着您可以创建所需的常规步骤。