【发布时间】:2015-01-29 13:06:20
【问题描述】:
我需要获取消息源以访问简单 groovy 类(异常类)中的 message.properties 文件,以便我使用 Holders.getGrailsApplication()。我的问题是Holders.getGrailsApplication() 在执行单元测试用例时为空。如果我将它部署在 Web 服务器中,它工作正常。
变量:-
static def grailsApplicationCntx=Holders.getGrailsApplication().getMainContext().getBean(‘messageSource’)
错误:-
`Failure: testActivateService_Case1(com.xyz.ActivationServiceTests)
| java.lang.ExceptionInInitializerError
at java.lang.Class.forName(Class.java:186)
at com.xyz.DatabaseService.addBankUser(DatabaseService.groovy:11)
at com.xyz.RegisterService.register(RegisterService.groovy:39)
at com.xyz.ActivationServiceTests.setUp(ActivationServiceTests.groovy:60)
Caused by: java.lang.NullPointerException: Cannot invoke method getMainContext() on null object
at com.xyz.exception.Exception.(Exception.groovy:55)
… 4 more
【问题讨论】:
-
您是否尝试使用
GrailsUnitTestMixin运行此测试? (grails.org/doc/latest/api/grails/test/mixin/support/…) -
是的,我正在使用注释,但我认为执行单元测试时应用程序上下文没有在相应的类中加载。
标签: unit-testing grails grails-2.0 spock