在测试中切换页面对象的使用 - 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 == ""
}
}
我正在使用 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 == ""
}
}