2012-05-24 23 views
6

Antes de Grails 2.0.X era posible simular la configuración utilizando un método mockConfig provisto por la clase base que las pruebas extienden. Sin embargo, en Grails 2.0.X se recomienda que las clases de prueba utilicen la mezcla @TestFor en lugar de extender una clase base.configuración simulada en las pruebas Grails

Este mixin no parece proporcionar nada equivalente a los métodos mockConfig, por lo que no puedo averiguar cómo simular valores en Config.groovy.

Respuesta

6

usted tiene acceso a grailsApplication.config para que pueda modificar estos valores tanto como sea necesario, para que pueda hacer

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

Parece que mockConfig() ya no existe en Grails 2.x. ¿qué tal esto:

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

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

Parece que hay un objeto config que ya están en el alcance de las pruebas 2.x nuevos Grails. Así que es suficiente decir

config.some.config.setting = 'foo' 

que entonces será accesible desde el objeto @TestFor bajo prueba.

Si necesita crear el objeto manualmente, también hay un objeto grailsApplication en el alcance de las pruebas, al que pertenece el objeto config. Así que esto debería funcionar -

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

lo estoy haciendo de esta manera (en el caso cuando estoy probando un servicio):

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

Ninguna otra burla requerido.

Cuestiones relacionadas