2015-04-22 102 views
2

我明白,模擬框架可以覆蓋對象的行爲。這使得測試更容易,更快捷。模擬生產環境中的對象行爲可能會很好。但是問題出現在嘲弄開發者?最後,功能測試(這是真實世界的測試)告訴我們什麼通過或失敗。那麼爲什麼要延長這個不可避免的?爲什麼要嘲笑一個對象,只是爲了發現它甚至沒有在生產中工作。爲什麼要等功能測試儀找出那些代碼無效。如果我們沒有嘲笑,而是使用真正的測試,那麼我們可以馬上發現錯誤,而不是嘲笑自己。這是一個提出給我的觀點,它可能是philosphical,但你有什麼想法嘲笑框架與現實世界的單元測試嘲笑框架與功能測試,爲什麼要嘲笑?

回答

3

好問題。在寫了自動化的開發人員測試(甚至爲我的需要創建一個模擬庫)十年之後,我只能得出結論:使用嘲諷的單元測試是最好的方法,而不是而不是

相反,編寫驗收級別的集成測試對我來說效果更好。當我沒有簡單的方法時,我只使用嘲弄。儘管如此,我懷疑大多數開發者仍然需要好幾年的時間才能分享這種觀點。即使在今天,由於缺乏對此類測試的良好工具支持,創建(和運行)「現實世界」集成測試通常比僅僅嘲笑依賴關係更困難;通常情況下,「欺騙」並用嘲諷創建一堆單元測試更容易,而不是不費力地創建真實的測試,以更真實的方式真正實現代碼。