在Grails 2.0.X之前,可以使用测试扩展的基类提供的mockConfig
方法来模拟配置。但是,在Grails 2.0.X中,建议测试类使用@TestFor
mixin而不是扩展基类。
这个mixin似乎没有提供与mockConfig
方法等效的东西,所以我无法弄清楚如何在Config.groovy
中模拟值。
答案 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]