在grails 1.3.7中,我通过控制器中的ConfigurationHolder访问一些外部属性。谷歌搜索建议我可以在我的单元测试设置中使用以下内容:
mockConfig '''
sys.admin.username = "username"
sys.admin.password = "password"
'''
当我的单元测试运行时,ConfigruationHolder.config为null。所以更多的谷歌搜索引导我在设置中尝试这个:
def mockedConfig = new ConfigObject()
mockedConfig.sys.admin.username = "username"
mockedConfig.sys.admin.password = "password"
ConfigurationHolder.config = mockedConfig
在单元测试中仍然获得null配置对象。我也尝试了第一种风格的hiearctical语法,它也不起作用:
mockConfig('''
sys { admin {
username = 'username'
password = 'password'
} }
''')
我是grails的新手所以我在这方面遇到了困难,并希望对我的控制器单元进行测试。我如何绕过空配置对象?
答案 0 :(得分:2)
def config = ConfigurationHolder.config
将其移到需要它的方法中。
答案 1 :(得分:0)
你试过这个:
import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH
....
def username = CH.config.sys.admin.username
def password = CH.config.sys.admin.password