我正在尝试使用Geb测试我的主页受Spring Security的保护。
这是我的测试:
void "Unauthenticated user is redirected to login page."() {
given:
to HomePage
via AuthPage
expect:
at AuthPage
}
当我尝试运行此测试时,geb说我的断言失败。它说我在AuthPage中,而不在HomePage中。
这是堆栈跟踪:
| 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)
但这是我期望的行为!为什么会失败?
最佳答案
您可以使用针对涉及重定向的情况引入的via()
,就像to()
一样,它会转到页面url,但不会“检查”。因此您的测试将如下所示:
void "Unauthenticated user is redirected to login page."() {
when:
via HomePage
then:
at AuthPage
}
关于grails - 测试受 Spring 安全保护的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23537979/