unit-testing - Grails 单元测试面临的问题

标签 unit-testing grails grails-2.0 spock

我需要获取消息源才能访问 message.properties简单的 groovy 类(异常类)中的文件,以便我使用 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

最佳答案

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

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

关于unit-testing - Grails 单元测试面临的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28215520/

相关文章:

Grails 从 View 调用 Controller 方法

ajax - Grails-通过单个remoteFunction传递多个AJAX参数?

grails - 使用<g:select> grails

c# - 如何在 IHttpModule 中测试 HttpApplication 事件

c# - 模拟 System.Net.FtpClient GetHash 方法

jquery - 如何在我的grails应用程序中实现jquery-datatables:1.7.5插件

grails - 停止触发登录的已保存请求,始终重定向到 `/`

java - 工厂的 Mockito 条件验证

unit-testing - 如何在 boost.test 库中执行指定的测试套件

grails - 除了使用 transient 关键字之外,还有其他任何方法可以阻止Grails域类中字段(也是域类对象)的持久性吗?