2012-05-24 4 views
6

До Grails 2.0.X удалось смоделировать конфигурацию с использованием метода mockConfig, предоставляемого базовым классом, который проходит тестирование. Тем не менее, в Grails 2.0.X рекомендуется, чтобы классы тестов использовали смешение @TestFor вместо расширения базового класса.Конфигурация макета в тестах Grails

Этот миксин, похоже, не дает ничего, что эквивалентно методам mockConfig, поэтому я не могу понять, как имитировать значения в Config.groovy.

ответ

6

Вы имеете доступ к grailsApplication.config, так что вы можете изменить эти значения, сколько вам нужно, так что вы можете сделать

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

Похоже, mockConfig() больше не существует в Grails 2.x. как об этом:

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

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

Кажется, что есть config объекта уже в рамках в 2.x испытаниях нового Grails. Так что достаточно сказать

config.some.config.setting = 'foo' 

, который будет доступен из @TestFor тестируемого объекта.

Если вам нужно создать объект вручную, то в тесте есть объект grailsApplication, которому принадлежит объект config. Так это должно работать -

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

Я делаю это так (в том случае, когда я тестирую услугу):

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

Никакой другой насмешливый требуется.

Смежные вопросы