作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试调用下面的步骤定义实现
@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/
我是一名优秀的程序员,十分优秀!