Grails测试中的模拟配置

时间:2012-05-24 20:10:46

标签: unit-testing grails groovy mocking

在Grails 2.0.X之前,可以使用测试扩展的基类提供的mockConfig方法来模拟配置。但是,在Grails 2.0.X中,建议测试类使用@TestFor mixin而不是扩展基类。

这个mixin似乎没有提供与mockConfig方法等效的东西,所以我无法弄清楚如何在Config.groovy中模拟值。

4 个答案:

答案 0 :(得分:6)

您可以访问grailsApplication.config,这样您就可以根据需要修改这些值,这样就可以了

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

答案 1 :(得分:5)

我这样做(在我测试服务的情况下):

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

不需要其他嘲笑。

答案 2 :(得分:1)

似乎新的Grails 2.x测试中已经有config个对象。所以说它足够了

config.some.config.setting = 'foo'

然后可以从被测试的@TestFor对象访问。

如果需要手动创建对象,那么测试范围内的grailsApplication对象 - config对象所属的对象。所以这应该有效 -

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

答案 3 :(得分:0)

看起来在Grails 2.x中不再存在mockConfig()。怎么样:

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

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