在Serenity BDD中,我有一个Task
,用于打开应用程序的登录页面。我想使用此类不仅打开登录页面,还打开其他页面。
public class StartWith implements Task {
LoginPage loginPage;
@Override
public <T extends Actor> void performAs(T actor) {
actor.attemptsTo(
Open.browserOn(loginPage)
);
}
public static Task theLoginPage() {
return instrumented(StartWith.class);
}
// Is this possible???
public static Task theContactPage() {
return instrumented(StartWith.class);
}
}
是否可以添加其他静态方法,例如theContactPage
,以便我的演员可以呼叫以下其中之一:
StartWith.theLoginPage()
StartWith.theContactPage()
答案 0 :(得分:0)
您可以将url用作字符串参数。
public class StartWith implements Task {
private final String url;
public StartWith(String url) {
this.url = url;
}
@Override
@Step("{0} start portal at \\{#url\\}")
public <T extends Actor> void performAs(T actor) {
actor.attemptsTo(
Open.url(url)
);
}
public static Task theLoginPage() {
String url = "http://example.com/login";
return instrumented(StartWith.class, url);
}
public static Task theContactPage() {
String url = "http://example.com/contact";
return instrumented(StartWith.class);
}
}