【问题标题】:Mocking config for unit testing a grails controller用于单元测试 grails 控制器的模拟配置
【发布时间】:2011-07-15 14:14:31
【问题描述】:

在 grails 1.3.7 中,我通过控制器中的 ConfigurationHolder 访问一些外部属性。谷歌搜索表明我可以在我的单元测试设置中使用以下内容:

    mockConfig '''
        sys.admin.username = "username"
        sys.admin.password = "password"
    '''

当我的单元测试运行时 ConfigruationHolder.config 为空。所以更多的谷歌搜索让我在设置中尝试这个:

    def mockedConfig = new ConfigObject()
    mockedConfig.sys.admin.username = "username"
    mockedConfig.sys.admin.password = "password"
    ConfigurationHolder.config = mockedConfig

在单元测试中仍然得到一个空配置对象。我还尝试了第一种样式的 hiearctical 语法,但它也不起作用:

    mockConfig('''
        sys { admin {
            username = 'username'
            password = 'password'
        } }
    ''')

我是 grails 的新手,所以我在这个过程中磕磕绊绊,想测试我的控制器单元。如何绕过空配置对象?

【问题讨论】:

    标签: unit-testing grails


    【解决方案1】:

    唉,这是一个时间问题。我在我的控制器类中持有对配置持有者的引用:

    def config = ConfigurationHolder.config
    

    在需要它的方法内移动它。

    【讨论】:

    • 我遇到了同样的问题。感谢您远程帮助我。您是否很好地理解了这个问题?我没有。如果你能解释一下
    【解决方案2】:

    你试过这个吗:

    import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH
    
    ....
    
    
    def username = CH.config.sys.admin.username
    def password = CH.config.sys.admin.password
    

    【讨论】:

      猜你喜欢
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多