我有一個控制器,它在save方法中調用一個線程來檢索一些文件。線程已啓動()具有此LINE-Grails使用grails進行單元測試應用
RetrievalThread retrievalThread = grailsApplication.mainContext.getBean ('retrievalThread').
在我的單元測試我想這一個領域,它的工作(我會繼續省略了其他行有沒有影響現在)。如果沒有這一行,就會發生錯誤,說無法獲得null對象的mainContext,談論grailsApplication。 。
Def mainContext = Mock(ApplicationContext)
MainContext.getBean(_) >>{ name ->
return new MockRetrievalThread()}
模擬線程不會執行任何操作。
這個測試運行良好,但是之後的任何測試都會失敗,出現空指針異常而沒有真正的信息。看起來像一堆背景grails的東西。有沒有辦法清理這個或使用比我使用的更好的東西?
我遇到過這個問題,在使用常規測試時,grails \ grailsApplication沒有正確注入,通過集成測試運行整個應用程序解決了這個問題。你使用集成測試嗎? – shaydel