【问题标题】:Duplicate Annotations for cucumber in Java BDD frameworkJava BDD 框架中黄瓜的重复注释
【发布时间】:2023-01-12 22:54:10
【问题描述】:

下面三个来自不同步骤定义的 @Then 语句如何在 Java 中解决这个问题。

@Then("User selects {string} value")
@Then("User selects {string} and verify the value are Present in the dropdown")
@Then("User selects {string} value under placements")
public void user_selectsValue(String locatorString) throws Throwable {
    locatorStr =  POC_homePageMenuItems.mainButtonDropdownNewfrmData(locatorString);
    elementclick(locatorStr);
    }

如何解决这个问题,在 python 中重复 @Then 允许使用不同的步骤定义。如何在 Java 中解决这个问题

【问题讨论】:

  • Java 只允许将每个注释中的一个应用于单个方法。 Cucumber 不关心你使用了哪些副词。因此,将某些 Then(s) 更改为 GivenWhenAndBut
  • 这意味着只有一个@Then 可以用于定义步骤定义实现的方法吗?但是即使排便语言发生变化,该功能也会执行完全相同的操作。

标签: java selenium cucumber bdd


【解决方案1】:

您可以使用正则表达式或分组

@Then("User selects {string} (value|value under placements|and verify the value are Present in the dropdown)")
public void user_selectsValue(String locatorString, String option) throws Throwable {

但如果不使用/不需要新的option,重构为单个测试短语可能更简单。

【讨论】:

    【解决方案2】:

    我猜你使用的是旧版本的 Cucumber。自Cucumber v5 the step definition annotations are repeatable

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多