2016-03-22 41 views
0

Bir uygulama, applicaiton.yml dosyasından 3.0 no'lu sınıflandırmalarda entegrasyon testine nasıl enjekte edilir?Entegrasyon testine özellik enjekte Et Grants 3

Örneğin ben benim applicaiton.yml bu özelliği vardır

benim Entegrasyon Spock testinde
---- 
testing: 
    defaults: 
     startUrl: 'http://localhost:8080/' 
---- 

, Aşağıdaki kod var:

class WebpageRolesTestSpec extends Specification { 

    def grailsApplication 
    String LOGIN_URL = grailsApplication.config.getProperty('testing.defaults.startUrl') 

    void "test login screen prompt"() { 
     expect: 
     LOGIN_URL == 'http://localhost:8080/' 
    } 
} 

i alıyorum istisnadır: Can not boş nesne üzerinde mülkiyet 'yapılandırma' get

cevap

1

Şunları kullanabilirsiniz sahipleri:

import grails.util.Holders 
... 
LOGIN_URL = Holders.config.testing.defaults.startUrl 
... 
+0

Mükemmel! Teşekkürler! – angryip

1

Grails 3.1.1'de benim için yaptığım testlerin altında, temiz bir uygulamaya ihtiyacınız olacağını düşünüyorum.

import grails.test.mixin.integration.Integration 
import grails.transaction.* 
import spock.lang.* 

@Integration 
@Rollback 
class SampleSpec extends Specification { 
    def grailsApplication 

    void "test something"() { 
     expect:"fix me" 
      grailsApplication.config.getProperty('testing.defaults.startUrl') == 
       'http://localhost:8080/' 
    } 
}