2012-04-03 97 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