2012-04-03 106 views

回答

4

有幾種類型的測試:單元測試,驗收測試,集成測試。還有幾種開發實踐,如TDD或BDD。所以,BDD不僅僅是驗收測試。 BDD可以完成單元測試級別。下面是一些Dan North thoughts約BDD和TDD之間的區別,當我們談論的單元測試:

  • 測試方法的名稱應該是句子(扔「測試」字外)專注於行爲的文章模板
  • (啓動測試名稱與「應該」或「ShouldNot」)

有針對不同類型的測試不同的BDD框架。例如。用於驗收BDD的SpecFlow,或用於單元級BDD的NSpec

所以,回答你的問題:

  • 如果BDD風格進行單元測試,然後寫這些測試是BDD實踐
  • 同樣,單元測試可能是BDD的一部分,如果我們不說話關於驗收測試。請記住,單元測試可以與TDD/BDD分開進行,例如,當你爲現有代碼編寫測試時。
+2

我認爲,我所看到的大多數單元測試更關注實現細節而不是其功能行爲。這些類型的測試往往是脆弱和不必要的具體。當測試更專注於需要發生什麼而不是如何完成時,單元測試找到類似於BDD的共同點。 – bryanbcook 2012-04-04 03:38:37

+0

同意。最近幾年,我傾向於使用人類可讀的實時文檔編寫測試,而不依賴於實現。但是在開始時我還使用了像TestMethodFoo這樣的名字,在MethodFoo的簡單重命名後變得混亂:) – 2012-04-04 07:55:09