我有几个共享“步骤定义”的测试。例如:
Scenario: test1
Given that the sky is blue
And that the sun is up
When I go outside
Then I might get a sunburn
Scenario: test2
Given that the sun is up
When I go outside
Then it will be light
执行步骤“使太阳升起”和“使太阳升起”这两个步骤相等。
我想要的是这样的:
@And("that the sun is up")
@Given("that the sun is up")
public void thatTheSunIsUp() {
// Do some fancy and sunny things.
}
不幸的是,这不起作用。如何在没有相同步骤的重复方法的情况下实现相同目标?
最佳答案
黄瓜中的每个步骤都定义为Given
,When
或Then
,但实际上它更像是:
// ENTER PSUEDOCODE
@Step("that the sun is up")
public void thatTheSunIsUp() {
// Do some fancy and sunny things.
}
关键字是可互换的,因此可以根据上下文是先决条件(
Given
)是被测操作(When
)还是结果(Then
)。按照最初的定义(没有重复的
@And
部分),可以在功能文件中使用Given
,When
,Then
,And
,But
和*
作为关键字,以及黄瓜的后端应该与您的步骤相匹配,但是您用于定义的内容应与它的预期用途相匹配(如上一段所述)关于java - 您可以同时使用@Given和@And吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58769068/