我有一个用grails / groovy在ggts中开发的应用程序,并且有不同角色的用户。我想通过直接将链接插入地址栏来测试用户是否可以访问应用程序的某些部分。那么,我的问题在哪里?当我在本地主机上测试我的应用程序时,一切正常。但是,当我想通过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
,因为我想通过直接在地址栏中插入链接来测试用户是否可以访问产品。请帮助,我没有其他想法了。
谢谢。
最佳答案
静态url属性应为字符串,而不是闭包:
static url = config.grails.serverURL + "/shop/catalog/show/123"
关于grails - 对地址栏中直接插入的链接进行Geb测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19564886/