我有一个使用grails / groovy开发的ggts应用程序,并且有不同角色的用户。我想通过直接将链接插入地址栏来测试用户是否可以访问应用程序的某些部分。那么,我的问题在哪里?当我在localhost上测试我的应用程序时,一切正常。但是,当我想通过http://shopapp
进行测试时,那就不行了。申请是一样的。
这是我的代码:
LoginSpec.groovy
import geb.spock.GebReportingSpec
import spock.lang.*
import pages.*
@Stepwise
class LoginSpec extends GebReportingSpec {
def "opage"() {
when:
to LoginPage
loginUser()
acceptButton.click()
then:
to ProductPage
}
}
ProductPage.groovy
package pages
import geb.Browser
import grails.util.Holders
class ProductPage extends ScaffoldPage {
def config = org.codehaus.groovy.grails.commons.ConfigurationHolder.config
static url = {config.grails.serverURL + "/shop/catalog/show/123"}
static at = {
waitFor { title ==~ /Products/ }
title ==~ /Products/
}
static content = {
}
}
config.grails.serverURL应为http://shopapp
。
当我开始测试时,它会打开http://shopapp/login
,用户登录并打开主页。但后来它停留在主页上。它应该转到http://shopapp/shop/catalog/show/123
,因为我想测试用户是否可以通过直接在地址栏中插入链接来访问产品。
请帮助,我没有更多的想法。 谢谢。
答案 0 :(得分:0)
静态url属性应该是一个字符串,而不是一个闭包:
static url = config.grails.serverURL + "/shop/catalog/show/123"