我試圖用TDD開發我的第一個項目。在這種情況下,我必須在我的應用程序代碼之前編寫測試用例。在我的測試案例中,我有一些模擬對象。我想知道模擬對象的期望是否也必須在代碼創建之前編寫。如果確實如此,我該如何實現這一目標?我怎樣才能想象在寫真代碼之前必須調用的方法? (我使用的是JUnit和JMock的JAVA)測試驅動開發 - 模擬對象
2
A
回答
3
這正是TDD的工作原理。你根據你的規範編寫測試:你想讓被測試的類與它的依賴關係(模擬對象)做什麼。在編寫時,通過在您正在模擬的接口上添加方法來進行編譯(默認實現不會返回任何內容)。然後你可以進行單元測試(使用模擬)。當所有測試都通過時,您可以繼續爲依賴項添加單元測試,這將依次推動您在上述步驟中編寫的空方法的實現。
它將確保您對所有具體課程有100%的覆蓋率。
0
我想知道,如果模擬對象的期望必須的代碼創建
您可以創建一個具有一個方法之前寫入 也什麼也沒有,然後嘲笑結果。
我怎麼能想象在寫真 代碼之前必須調用的方法?
如何在不知道需要做什麼的情況下編寫代碼?從空方法開始...
2
這就是爲什麼TDD是設計方法在第一位。通過測試你是設計你的應用程序。您正在創建漂亮的API,然後通過編寫滿足您的設計(即符合要求)的代碼來實現此API。
從測試開始,它可以幫助您理解代碼的需求,並以斷言的形式記下這些需求(順便提一下,有人可以實現這些需求)。從一開始你就不會創造出最好的設計。但是,您的設計將在重構過程中發展 - 您將重命名方法和類,您將提取一些代碼。這將需要測試更改 - 您需要模擬提取的依賴關係。但是你的代碼隨時會滿足需求,因爲斷言將保持不變。
相關問題
- 1. 模擬對象 - 設置方法 - 測試驅動開發
- 2. Android測試驅動開發
- 3. 測試驅動開發
- 4. 測試驅動開發 - WPF
- 5. 測試驅動開發javascript
- 6. 測試驅動開發書
- 7. 是測試面向發展對測試驅動開發
- 8. 測試驅動開發/集成測試的RIA開發
- 9. Swift中的測試驅動開發
- 10. REST API的測試驅動開發
- 11. 測試驅動的開發 - 單元測試(在CakePHP中)
- 12. Visual Studio 2010和測試驅動開發
- 13. Flash中的測試驅動開發
- 14. 測試驅動開發:無效方法
- 15. 測試驅動開發敏捷?
- 16. 測試驅動開發:asp.net mvc
- 17. 春季測試驅動開發嘲諷
- 18. RSpec的測試驅動開發
- 19. CakePHP中的測試驅動開發
- 20. SQL代碼的測試驅動開發
- 21. 測試驅動開發和接口
- 22. Python中的測試驅動開發
- 23. Liferay的測試驅動開發
- 24. JavaScript庫的測試驅動開發
- 25. 什麼是測試驅動開發?
- 26. MSBuild任務的測試驅動開發
- 27. 測試驅動的開發問題
- 28. ASP.NET MVC和測試驅動開發
- 29. 測試驅動的開發過程
- 30. Python測試驅動開發 - 第6章