在测试中切换页面对象的使用 - Geb Groovy Spock

时间:2017-05-23 14:07:07

标签: user-interface groovy spock functional-testing geb

我正在使用Spock,Groovy和Geb编写UI功能测试来实现页面对象模式。在我的事件流程中,我导航离开当前页面以获得结果,因此,我需要在测试中切换页面对象但是还没能成功完成

以下测试用例:

    def "Navigate to Second Page"() {
    when: "I navigate to second page"

    redirctButton.click()

    then: "Second Page Url should show"
    browser.getCurrentUrl() == secondpageUrl
}

def "Use method form second page"() {
    when: "Im on second page"
    SecondPage.performSearch("search")

    then: "result should show"
    SecondPage.resultBox == ""
}

1 个答案:

答案 0 :(得分:0)

您应该为页面对象添加at-checking,然后您可以使用at方法验证您是否在预期页面上,使browser.getCurrentUrl() == secondpageUrl过时。 at检查的另一个影响是它更改当前页面并返回强类型访问的页面对象。如果您不关心强类型访问,则可以在第二个测试中删除expect块,只有那样才能访问键入的页面对象。


@Stepwise
class PageTest extends GebReportingSpec {

def "Navigate to Second Page"() {
    when: "I navigate to second page"
    redirctButton.click()

    then: "Second Page Url should show"
    at SecondPage
}

def "Use method form second page"() {
    expect:
    def secondPage = at SecondPage

    when: "Im on second page"
    secondPage.performSearch("search")

    then: "result should show"
    secondPage.resultBox == ""
}
}