grails - 对地址栏中直接插入的链接进行Geb测试

标签 grails groovy geb

我有一个用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/

相关文章:

selenium-grid - Geb/Spock + Selenium Grid 上的集成测试不并行运行

grails - 如何从Windows命令行在Gradle项目中运行Groovy脚本

grails - Grails 2 rc3 中的安全操作

angularjs - 什么时候使用grails <g:if test> vs angular ng-if?

grails - 从类名称创建grails域类

groovy - php 类似于 Groovy 中的关联数组

java - Jackson XmlMapper 将XML转换为POJO,节点文本的键是 ""

mysql - 插入大型 xml 时在数据库中设置标志

string - Groovy:从字符串计算的时间减法

grails - 标记Geb类别/测试以排除