【发布时间】:2015-12-16 12:53:38
【问题描述】:
我有一个控制器,它在 save 方法上调用一个线程来检索一些文件。该线程在具有此行的域中具有 start() -
RetrievalThread retrievalThread = grailsApplication.mainContext.getBean ('retrievalThread').
在我的单元测试中,我尝试了这个并且它有效(我将省略其他现在没有影响的行)。如果没有这一行,则会出现错误,说无法在 null 对象上获取 mainContext,谈论 grailsApplication。 .
Def mainContext = Mock(ApplicationContext)
MainContext.getBean(_) >>{ name ->
return new MockRetrievalThread()}
模拟线程不做任何事情。
此测试运行良好,但此后的任何测试都失败,出现空指针异常,没有真实信息。看起来像一堆背景 grails 的东西。有没有办法清理它或使用比我现在使用的更好的东西?
【问题讨论】:
-
我遇到了这个问题,grails\grailsApplication 在使用常规测试时没有被正确注入,通过集成测试运行整个应用程序解决了这个问题。你在使用集成测试吗?
标签: unit-testing grails