【发布时间】:2018-03-20 15:26:22
【问题描述】:
我有一个功能文件和相应的步骤定义,并且都按预期工作。现在,在相同的项目结构中,我创建了第二个功能文件。甚至在为新文件创建步骤定义之前,黄瓜告诉我新文件中的一个步骤存在匹配的步骤定义,当然,原因是该步骤的措辞与第一个功能中的步骤相同,因此 cucumber 拒绝为该步骤自动生成步骤 def,前提是已经存在实现。这两个步骤共享相同的正则表达式(捕获组),但正则表达式代表不同的 URL 参数
我现在的问题是如何重用现有的步骤定义。我读到可以使用 java switch 语句,以便 step def 可以用来表示两个功能步骤,但作者没有详细说明如何实现。
功能文件 1:
Scenario: Open shipping page
When I select a course
And I navigate to the shipping app
Then the "shipping page" should open
步骤定义:
@Then("^the \"([^\"]*)\" should open$") . //matching step def
public void verifyShippingPage(String shippingPage) {
shipping.verifyShippingPage(shippingPage); //method call
}
功能文件 2:
Scenario: Open planet page
When I select a course
And I navigate to the planet app
Then the "planet page" should open //step that wants to reuse the step def above
运输页面和行星页面具有不同的 URL,但共享相同的正则表达式 \"([^\"]*)\"。是否可以使用 switch 语句在 URL 之间进行更改,或者有什么方法可以完成此任务?
【问题讨论】: