Unit testing 模拟用于单元测试grails控制器的配置
在Grails1.3.7中,我通过控制器中的ConfigurationHolder访问一些外部属性。谷歌搜索表明,我可以在设置单元测试时使用以下内容:Unit testing 模拟用于单元测试grails控制器的配置,unit-testing,grails,Unit Testing,Grails,在Grails1.3.7中,我通过控制器中的ConfigurationHolder访问一些外部属性。谷歌搜索表明,我可以在设置单元测试时使用以下内容: mockConfig ''' sys.admin.username = "username" sys.admin.password = "password" ''' 当我的单元测试运行时,ConfigruationHolder.config为null。因此,更多的谷歌搜索让我在设置中尝试:
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
仍在单元测试中获取空配置对象。我还尝试了第一种样式的层次语法,但也不起作用:
mockConfig('''
sys { admin {
username = 'username'
password = 'password'
} }
''')
我是grails的新手,所以我正在艰难地完成这项工作,并希望对我的控制器单元进行测试。如何绕过空配置对象?您是否尝试过以下方法:
import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH
....
def username = CH.config.sys.admin.username
def password = CH.config.sys.admin.password
唉,这是一个时间问题。我在控制器类中持有对configurationholder的引用:
def config = ConfigurationHolder.config
将它移动到需要它的方法中。我遇到了同样的问题。谢谢你远程帮助我。你很了解这个问题吗?我没有。如果你能解释的话