.NET 里的行为驱动开发

  • 2011-08-15
  • 本文字数:622 字

    阅读完需:约 2 分钟

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

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

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

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

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

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

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

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