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

Switching use of page objects in test - Geb Groovy Spock

我正在使用 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 == ""
}

您应该为您的页面对象添加 at-checking,然后您可以使用 at 方法来验证您是否在预期的页面上,使 browser.getCurrentUrl() == secondpageUrl 过时。 at-check 的另一个影响是它改变了当前页面以及 returns 强类型访问的页面对象。如果您不关心强类型访问,您可以在第二个测试中删除 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 == ""
}
}