我明白,模擬框架可以覆蓋對象的行爲。這使得測試更容易,更快捷。模擬生產環境中的對象行爲可能會很好。但是問題出現在嘲弄開發者?最後,功能測試(這是真實世界的測試)告訴我們什麼通過或失敗。那麼爲什麼要延長這個不可避免的?爲什麼要嘲笑一個對象,只是爲了發現它甚至沒有在生產中工作。爲什麼要等功能測試儀找出那些代碼無效。如果我們沒有嘲笑,而是使用真正的測試,那麼我們可以馬上發現錯誤,而不是嘲笑自己。這是一個提出給我的觀點,它可能是philosphical,但你有什麼想法嘲笑框架與現實世界的單元測試嘲笑框架與功能測試,爲什麼要嘲笑?
2
A
回答
3
好問題。在寫了自動化的開發人員測試(甚至爲我的需要創建一個模擬庫)十年之後,我只能得出結論:使用嘲諷的單元測試是最好的方法,而不是而不是。
相反,編寫驗收級別的集成測試對我來說效果更好。當我沒有簡單的方法時,我只使用嘲弄。儘管如此,我懷疑大多數開發者仍然需要好幾年的時間才能分享這種觀點。即使在今天,由於缺乏對此類測試的良好工具支持,創建(和運行)「現實世界」集成測試通常比僅僅嘲笑依賴關係更困難;通常情況下,「欺騙」並用嘲諷創建一堆單元測試更容易,而不是不費力地創建真實的測試,以更真實的方式真正實現代碼。
相關問題
- 1. 嘲笑HttpPostedFileBase與犀牛嘲笑
- 2. 微軟的嘲笑框架?
- 3. 爲什麼要嘲笑倉庫?
- 4. 嘲笑單元測試類
- 5. 嘲笑集成測試
- 6. 爲什麼我們需要嘲笑框架?
- 7. 使用犀牛嘲笑嘲笑OUT參數,這是我測試
- 8. 是否有可能嘲笑被測試
- 9. 嘲笑與測試數據庫?
- 10. 我怎麼能嘲笑ActivityExecutionContext
- 11. 犀牛嘲笑:存根&嘲笑。有什麼區別
- 12. 用犀牛嘲笑嘲笑系列
- 13. 嘲笑是做什麼的?
- 14. 用笑話表示嘲笑?
- 15. 犀牛嘲笑:嘲諷HttpRequestBase.Files
- 16. 嘲諷命令嘲笑
- 17. 嘲笑會員
- 18. 嘲笑異常
- 19. 嘲笑HttpListenerContext
- 20. 嘲笑Java類
- 21. 嘲笑SPServer.Local
- 22. 嘲笑FacesContext
- 23. 嘲笑UIImagePNGRepresentation
- 24. 嘲笑HttpServerUtilityBase
- 25. Jmockit:嘲笑@EJB
- 26. 嘲笑Wcf ServiceContract
- 27. 嘲笑DateTime
- 28. 嘲笑RavenDb
- 29. 當嘲笑localStorage.getItem
- 30. 從嘲笑ApplicationUserManager.Users