我正在用Grails進行開發。由於框架將引導數據並完全刷新彈出上下文,因此我發現我爲服務編寫了很多集成測試。讓我重述一下:我發現我沒有寫服務的單元測試,只有集成測試。這是一個壞主意嗎?我看到的唯一不足就是我的測試需要更長的時間才能運行。集成與單元測試
我在控制器上使用單元測試,如在控制器中測試各種應用程序流程,結果類型,重定向邏輯等。但我寫的大多數測試都是集成測試。這似乎與傳統的J2EE測試有所不同,大部分是單元測試。
編輯 - 要清楚,我不寫集成測試,因爲代碼是如此複雜,只有集成測試才能做到。我編寫集成測試,因爲它更容易測試一切,因爲框架給你很多。我嘲笑某些事情,比如如果一個服務與acegi authenticationService協作,我嘲笑它。我也會模擬任何時候我們與web服務進行交互,因爲你必須爲了得到一個沒有特殊設置的測試。
集成測試可能比單元測試更脆弱。如果您發現自己主要編寫集成測試,請考慮重構項目,以便更容易地進行單元測試。如果你的代碼被編寫爲可測試的,你可能會發現單元測試比集成測試更容易編寫,並且更穩定(不太容易中斷)。集成測試適用於測試系統組件之間的交互,但它們並不總是提供足夠的代碼覆蓋率,所以它們不能代替單元測試。 – 2010-08-02 22:41:15