面对Grails中单元测试的问题

时间:2015-01-29 13:06:21

标签: unit-testing grails grails-2.0 spock

我需要获取messagesource以在简单的groovy类(Exception类)中获取访问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

1 个答案:

答案 0 :(得分:0)

我认为不需要注入messageSource。它已在那里可用。只需使用

messageSource.addMessage("foo.bar", request.locale, "My Message")