gpt4 book ai didi

java - 如何在 Cucumber 中使用 Java 将已实现的步骤从一个步骤定义调用到另一个步骤定义中

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:04:31 25 4
gpt4 key购买 nike

我正在尝试调用下面的步骤定义实现

@Given("^a user is logged into application with \"([^\"]*)\" and \"([^\"]*)\"$")

public void a_user_is_logged_into_application_with_and(String arg1, String arg2) throws Throwable
{
open();
login(arg1, arg2);

}

来自另一个步骤定义实现,如下所示:

@Given("^Run Add Business scenario$")
public void run_Add_Business_scenario() {

Given("a user is logged into application with 'clfmanager' and 'rules'");

}

我做不到,有什么办法可以做到吗?

最佳答案

@canpan14 建议这个解决方案:

@Given("Login with username (.+) and password (.+)")
public void login(String user, String pass){
// Login here
}

@Given("Login with defaults")
public void loginWithDefaults(){
login("defaultUser","defaultPass")
}

不幸的是,这是从另一个步骤调用一个步骤的示例。

我提倡的解决方案看起来更像这样:

public class LoginSteps {

private LoginHelper loginHelper = new LoginHelper();

@Given("Login with username (.*) and password (.*)")
public void login(String user, String pass) {
loginHelper.login(user, pass)
}

@Given("Login with defaults")
public void loginWithDefaults() {
loginHelper.login("defaultUser", "defaultPass")
}
}

具有可重用逻辑的辅助类:

public class LoginHelper {
public void login(user, pass) {
// login logic lives here and can be referenced from multiple steps
}
}

最大的区别是我将登录逻辑提取到辅助类中的一个方法中。这使我能够编写易于理解的单行步骤。

我将辅助方法移到了另一个类,以确保无论您从哪个步骤类调用它,都可以轻松掌握。

关于java - 如何在 Cucumber 中使用 Java 将已实现的步骤从一个步骤定义调用到另一个步骤定义中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42580600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com