這不是一個問題,但也許有關Grails的通用單元測試評論的請求。Grails的單元測試
我一直在反對寫單元測試,除非是非常非常簡單的用例,我總是碰到一些障礙。什麼我發現是隨時隨地的東西需要被嘲笑,像grailsApplication,或者一些其他的框架對象,單元測試開始分崩離析,或者你需要通過它成爲適得其反這麼多跳火圈。然後,在此之上,從1.X到2.X遷移造成的各種單元/集成測試重構的,這從長遠來看,讓事情變得更容易,但在遷移過程中仍造成故障。
我的答案...將所有半複雜的測試移到集成測試中,不要回頭看。它在一切都開始生效時起作用。運行需要更長的時間,但不會長於處理單元測試頭疼的問題。
導致我胃灼熱的最新而非第一個用例試圖單元測試一個服務,該服務創建一個依賴於grailsApplication.config的域對象,並對所述域對象執行某些操作。我嘗試了大多數我發現修復它的東西(除非實際工作正常!),沒有任何工作,我將單元測試代碼移動到集成測試,並在第一次運行時傳遞。單元測試抱怨說'config'無法在空對象或類似的東西上調用,這意味着grailsApplication不在那裏。
我真的沒有看到需要編寫單元測試時,集成測試一直工作的一切,所有的時間。
使用grails 2.2.0。
感謝您的回覆。雖然我理論上同意你的觀點,但實際上,上述代碼對我的用例並不起作用。也許這是由於grailsApplication.config屬性是一個閉包,而不是簡單的字符串屬性。我使用了TestFor和Mock註釋,並在發佈之前執行了所有提到的操作,但測試仍然拋出了null異常。我嘗試用metaClass覆蓋閉包,結果相同。我沒有注入grailsApplication等 – emiles
我也寫測試,預計會失敗。但是在某個地方,'快樂之路'必須通過! – emiles
@ emiles你可以使用[pastebin](http://paste.ubuntu.com/)並顯示測試類嗎? – dmahapatro