在地址栏中直接插入链接的Geb测试

时间:2013-10-24 11:39:09

标签: grails groovy geb

我有一个使用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,因为我想测试用户是否可以通过直接在地址栏中插入链接来访问产品。

请帮助,我没有更多的想法。 谢谢。

1 个答案:

答案 0 :(得分:0)

静态url属性应该是一个字符串,而不是一个闭包:

static url = config.grails.serverURL + "/shop/catalog/show/123"