我正在尝试使用Geb测试我的主页受Spring Security保护。
这是我的测试:
void "Unauthenticated user is redirected to login page."() {
given:
to HomePage
via AuthPage
expect:
at AuthPage
}
当我尝试运行此测试时,geb说我的断言失败了。它说我在我的AuthPage而不是我的主页。
这是堆栈跟踪:
| Failure: Unauthenticated user is redirected to login page.(home.HomePageSpec)
| Assertion failed:
title ==~ /Home/
| |
Login false
at pages.home.HomePage._clinit__closure1(HomePage.groovy:8)
at geb.Page.verifyThisPageAtOnly(Page.groovy:165)
at geb.Page.verifyAt(Page.groovy:133)
at geb.Browser.doAt(Browser.groovy:358)
at geb.Browser.at(Browser.groovy:289)
at geb.Browser.to(Browser.groovy:436)
at geb.Browser.to(Browser.groovy:412)
at geb.spock.GebSpec.methodMissing(GebSpec.groovy:51)
at home.HomePageSpec.Unauthenticated user is redirected to login page.(HomePageSpec.groovy:22)
但这是我期待的行为!为什么会失败?
答案 0 :(得分:2)
您可以使用via()
,这是针对涉及重定向的情况而引入的,它会像to()
那样转到页面网址,但是在检查"时它没有做到#34;。所以你的测试看起来像:
void "Unauthenticated user is redirected to login page."() {
when:
via HomePage
then:
at AuthPage
}
答案 1 :(得分:0)
geb的to()
方法隐式调用静态at closure
。这就是我的测试失败的原因。当我打电话给HomePage
时,它会检查我是否到达HomePage
我从未做过,因为它被重定向。我改为使用go <HOME_PAGE_URL>
。