2012-05-24 16 views
6

Przed wersją Grails 2.0.X można było sfałszować konfigurację przy użyciu metody mockConfig dostarczonej przez klasę podstawową, która testuje rozszerzenie. Jednak w Grails 2.0.X zaleca się, aby klasy testowe używały mieszania @TestFor zamiast rozszerzania klasy bazowej.konfiguracja próbna w testach Grails

Ten mixin nie wydaje się dostarczać niczego równoważnego z metodami mockConfig, więc nie mogę wymyślić, jak wyśmiewać wartości w Config.groovy.

Odpowiedz

6

Masz dostęp do grailsApplication.config więc można modyfikować te wartości tak samo, jak trzeba, więc można zrobić

grailsApplication.config.some.config.setting = 'foo' 
0

Wygląda na to, że funkcja mockConfig() już nie istnieje w Grails 2.x. jak o tym:

def mockConfig = new ConfigObject() 
    mockConfig.some.config.setting = "foo" 

    def myService = new MyService() 
    myService.grailsApplication = [config: mockConfig] 
1

Wydaje się, że istnieje config obiekt już w zakresie w testach 2.x nowe Grails. Więc to wystarczy powiedzieć

config.some.config.setting = 'foo' 

który będzie wtedy dostępny z obiektu @TestFor badanego.

Jeśli chcesz utworzyć obiekt ręcznie, w testach znajduje się również obiekt grailsApplication - do którego należy obiekt config. Tak to powinno działać -

config.some.config.setting = 'foo' 
def myService = new MyService(grailsApplication:grailsApplication) 
4

robię to w ten sposób (w przypadku, gdy jestem testowania usługi):

service.grailsApplication.config.mysetting = 'my value' 
def result = service.myMethod() 
// check results 

Żadna inna szyderczy wymagane.