【问题标题】:Grails - "Cannot get property 'grails' on null object" from unit testGrails - 来自单元测试的“无法在空对象上获取属性'grails'”
【发布时间】:2011-10-08 00:56:02
【问题描述】:

我收到以下错误...

Cannot get property 'grails' on null object
java.lang.NullPointerException: Cannot get property 'grails' on null object
    at pcc.EmailSharerController.<init>(EmailSharerController.groovy)
    at grails.test.MvcUnitTestCase.newInstance(MvcUnitTestCase.groovy:102)
    at grails.test.ControllerUnitTestCase.super$6$newInstance(ControllerUnitTestCase.groovy)
    at grails.test.ControllerUnitTestCase.newInstance(ControllerUnitTestCase.groovy:112)
    at grails.test.ControllerUnitTestCase.setUp(ControllerUnitTestCase.groovy:55)
    at pcc.EmailSharerControllerTests.super$7$setUp(EmailSharerControllerTests.groovy)
    at pcc.EmailSharerControllerTests.setUp(EmailSharerControllerTests.groovy:12)

...当我运行 EmailSharerController 的单元测试 setUp() 时,即使它被简化为:

protected void setUp() {
        super.setUp()  
}

我浏览了网络并没有找到任何东西。 我不知道它可能来自哪里。 任何帮助都非常感谢:)

【问题讨论】:

  • 查看您的控制器会有所帮助。看起来您可能引用了在单元测试期间未连接的东西的属性。

标签: unit-testing grails service controller installation


【解决方案1】:

问题是 Grails 在单元测试中不支持 ConfigurationHolder 对象。 可以这样解决:

mockConfig("""  
        grails {
            serverURL = 'my domain name'
        }
    """)

例如调用 Config.groovy 的 grails.serverURL 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多