【发布时间】:2019-07-03 17:53:27
【问题描述】:
我想在我的黄瓜测试点击指向不同页面的链接后验证后续页面。
我想验证网页上的链接。我的 Cucumber 测试正在解析所有链接并导航到每个链接。我想创建一个通用的黄瓜步骤,它将接受一些参数,我将通过该参数验证是否打开了正确的页面。
到目前为止,我创建了一个通用的黄瓜步骤,它接受页面标题字符串,通过它我验证导航是否指向正确的页面。
我的黄瓜测试:
Scenario Outline: As a not registered User I can visit "<page>"
When user looks at the webpage
And user clicks on "<link>"
Then user is navigated to "<page>"
Examples:
| link | page
| How to register | Registration page
| Questions & Answers | Login FAQ's
| Register Now | Create account
| Forgot your name or password? | Reset Password
我的步骤如下所示:
@Then("^user is navigated to \"([^\"]*)\"$")
public void userIsNavigatedTo(final String pageHeading) throws IOException {
switch (pageHeading) {
case "Registration page":
Assert.assertTrue(
howToRegisterPage.getPageHeading().getText()
.equalsIgnoreCase(pageHeading)
);
break;
case "Login FAQ's":
Assert.assertTrue(
questionsAndAnswersPage.getPageHeading().getText()
.equalsIgnoreCase(pageHeading)
);
break;
//.....//
}
这个开关对我来说看起来很糟糕,而且,我知道它很快就会变得阅读起来太长而且难以维护。
附:我所有的 PageObjects 都是 Spring Bean,可以自动装配到 StepDefinition 类中,但我不知道如何制作我的“userIsNavigatedTo” 通用的,我需要作为参数传递的内容以及如何为每次迭代采用正确的 PageObject。
【问题讨论】: