BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

.NET里的行为驱动开发

| 作者 Roopesh Shenoy 关注 0 他的粉丝 ,译者 李永伦 关注 0 他的粉丝 发布于 2011年8月17日. 估计阅读时间: 2 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

越来越多人把行为驱动开发(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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

MSpec我喜欢 by Wen Ruiyun

太喜欢能够用读自然语言的方式读MSpec代码了,配合上MSMSpec,也能很好的支持持续集成。尽管很多人厌恶=()=>的语法,不过我觉得很有趣。

Re: MSpec我喜欢 by Jeffrey Zhao

不用关心厌恶 () => 这种语法的人,小学生还厌恶解方程呢,世上总少不了小白的。

恩,看起来是很好的东东,收藏先! by 高 翌翔

忙完这段要好好研究一下测试了,这个方向很不错!

Re: 恩,看起来是很好的东东,收藏先! by 李 永伦

Dave Astels的《重新审视测试驱动开发》写得挺好的,他指出一直以来很多人都把TDD当做测试来看待,误解了他最初的立意。RSpec是个好东东,结合Ruby强大的元编程,当我第一次接触RSpec时就深深被它吸引住了……

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

4 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT