回答
TDD更多地用於單元測試,例如,在課堂上測試一種方法。 BDD用於測試系統的行爲,例如創建用戶,或發送新產品電子郵件。
所以對於TDD你可能會看到類似的東西。
public void Test()
{
// Arrange.
var sut = new ClassToTest();
// Act.
int result = sut.SoSomething();
// Assert.
Assert.Equal(result, 23);
}
隨着BDD(取決於您使用的工具),你會看到這樣的事情:
Feature: Add a user
As a system admin
In order to give a user access to the site
I want to create a user account
Scenario: Creating a basic user
Given I have the user's name
When I create a new user account
Then that user can log onto the site
如你,BDD是測試系統的行爲,而不是單一的單元。這是一個非常好的BDD丹介紹 - http://dannorth.net/introducing-bdd/
我建議使用TDD時,你正在建立你的類/代碼,並希望一次測試它的一點點。如果您想在測試中測試多個類中的一個,即集成測試,請使用BDD。
編輯:
隨着事情該怎麼側,用於BDD我會建議使用SpecFlow。這是一個流行的BDD工具,它爲Visual Studio添加了很多功能來創建特性文件(特性:我上面提到的東西)以及運行和調試測試。
引擎蓋下SpecFlow可以使用NUnit或MSTest來生成測試。其他BDD工具包括:
和許多其他我已經忘記了,現在:)我會建議你嘗試出來,看你喜歡哪一個。
對於TDD你有很多選擇,包括:
- NUNIT
- 的xUnit
- MSTest的
很多上述工具可以在Visual Studio,這是很方便的通過的NuGet安裝。
謝謝傑森,這是很好的和甜蜜的解釋開始,但我仍然會尋找一個很大的挖,因爲我想深入其中,爲什麼和什麼。乾杯。 – DotNetGeek
關於您的問題的「什麼」部分,我們需要知道您打算使用哪種平臺和編程語言,例如,在Windows/Linux的/ Mac嗎? .NET,Ruby on Rails等? –
對不起,傑森,這是怎麼樣,而不是什麼。打字時我正在想別的東西。僅供參考,我在Windows平臺上使用.Net。謝謝 – DotNetGeek
- 1. BDD或TDD?你喜歡哪個?爲什麼?
- 2. BDD/TDD vs JAD?
- 3. TDD/BDD和模型驗證
- 4. PHP中TDD和/或BDD的狀態是什麼?
- 5. BDD和TDD,什麼是正確的工作流程?
- 6. 帶CodeIgniter的BDD/TDD
- 7. 因爲我聽說過BDD(行爲驅動開發)如何BDD補充TDD
- 8. 如何啓動TDD/BDD PHP CodeIgniter
- 9. 如何用asp.net 4.0 Web Forms做TDD/BDD?
- 10. 如何/什麼在BDD
- 11. 使用Revit API的BDD/TDD
- 12. 使用TDD/BDD開發XSLT
- 13. BDD與NBehave與MSTest TDD
- 14. TDD和BDD在Rails 3中如何相互關聯?
- 15. node.js應監聽哪些端口?如何和爲什麼?
- 16. 開源項目實踐TDD/BDD在C#
- 17. 好資源學BDD,TDD(ruby,C#,javascript)
- 18. BDD/TDD與JSpec - 刪除重複代碼
- 19. 使用TDD/BDD開發操作系統
- 20. TDD/BDD Rails黃瓜/ RSpec複製
- 21. TDD/BDD截屏視頻/視頻資源
- 22. 關於軌道中TDD(BDD)的爭論
- 23. 用於Django的TDD/BDD框架?
- 24. TDD有哪些常見的誤解?
- 25. TDD代表什麼?
- 26. 如何用TDD/BDD開發輸入對象?
- 27. 用tdd/bdd在rails中測試mongoid模型的最佳方法是什麼?
- 28. 哪些SQL查詢更好,爲什麼?
- 29. TDD - 爲什麼這個Assert.AreSame通過?
- 30. 關於功能測試,BDD和TDD的困惑
文章主題:[Mocks Are Stubs](http://martinfowler.com/articles/mocksArentStubs.html) – oleksii
你的問題應該是合理的範圍和具體。我會試着對這件事進行一些研究,如果你需要一些澄清,那就問問他們。還請閱讀[FAQ](http://stackoverflow.com/faq#d),其中提到了一個很好的問題 –
kibyegn,我知道它沒有很好的範圍,但我在這裏提出的是兩個有力的證據,所以我可以很好地理解它。我會在下次考慮你的建議時,等待你的研究結果。不過謝謝。 – DotNetGeek