2013-10-24 16 views
2

我有一個用ggts和grails/groovy開發的應用程序,並且有不同角色的用戶。我想測試用戶是否可以通過直接在地址欄中插入鏈接來訪問應用程序的某些部分。那麼,我的問題在哪裏?當我在本地主機上測試我的應用程序時,一切正常。但是當我想通過http://shopapp進行測試時,那就不行了。該應用程序是相同的。在地址欄中直接插入鏈接的Geb測試

這裏是我的代碼:

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

靜態url屬性應是字符串,而不是一個封閉:

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

我嘗試這樣做,我得到'你嘗試使用的方法「配置」,但在一個地方留出括號不會被允許語法。 @第19行,第15列。static url = config.grails.serverURL +'/ shop/catalog/show/123'' – pep