.NET 里的行为驱动开发

  • Roopesh Shenoy
  • 李永伦

2011 年 8 月 16 日

话题:敏捷.NET方法论语言 & 开发架构文化 & 方法

越来越多人把行为驱动开发(BDD)看作实施测试驱动开发的另一种方式。SpecFlowNSpec是.NET 里比较流行的 BDD 框架。它们协助创建即使不是程序员也能读懂的测试规范,并允许软件的目的驱动它的开发。

BDD 有两种主要的方式——xBehave 和 xSpec。第一种主要用于高层次的验收测试,而第二种则对单元级别的测试更有用。SpecFlow 和Cucumber类似,属于第一种,而NSpec(紧跟RSpec的潮流)则属于第二种。二者各有所长,通常可以在一个项目里同时使用——SpecFlow 覆盖场景级别的测试,而 NSpec 则覆盖细节单元级别的测试。

NUnitMSUnit等单元测试框架上使用 NSpec 或者类似的框架的好处是它允许以增量的方式生成上下文,同时不会让测试代码变得复杂。Dave Astels 在《重新审视测试驱动开发》里给出了一个很好的例子,通过比较 JUnit 和 RSpec,阐明细微的差别如何使编写更具可读性的测试变得更加容易。

除了它们的项目网站,还有一些教程示例可以帮助你入门的。

.NET 里的 BDD 框架并非只有 SpecFlow 和 NSpec,但它们算是最流行的。其它的还有Cuke4NukeNBehaveMSpec,各有各的优点和缺点。

BDD,作为测试驱动开发(TDD)的一种演化,起初是作为一项敏捷实践,使 QA 和非技术或业务人员更有效地参与到软件项目里。它扩展了 TDD,使用自然语言编写测试用例,并结合领域驱动开发在编写代码之前描述它的目的和好处。

你有在.NET 里尝试过行为驱动开发吗?如果有,你有哪些经验可以分享?

查看英文原文:Behavior Driven Development In .NET

敏捷.NET方法论语言 & 开发架构文化 & 方法