BDD(行为驱动开发)是继TDD(测试驱动开发)之后的新一代的敏捷开发模式。
标准定义:BDD是通过与利益相关者的讨论取得对预期的软件行为的清醒认识。它通过用自然语言书写非程序员可读的测试用例扩展了测试驱动开发方法。行为驱动开发人员使用混合了领域中统一的语言的母语语言来描述他们的代码的目的。这让开发者得以把精力集中在代码应该怎么写,而不是技术细节上,而且也最大程度的减少了将代码编写者的技术语言与商业客户、用户、利益相关者、项目管理者等的领域语言之间来回翻译的代价。
实现BDD的必要条件有如下一些方面:
1. 确立不同利益相关者要实现的远景目标
2. 使用特性注入方法绘制出达到这些目标所需要的特性
3. 通过由外及内的软件开发方法,把涉及到的利益相关者融入到实现的过程中
4. 使用例子来描述应用程序的行为或代码的每个单元
5. 通过自动运行这些例子,提供快速反馈,进行回归测试
6. 使用“应当(should)”来描述软件的行为,以帮助阐明代码的职责,以及回答对该软件的功能性的质疑
7. 使用“确保(ensure)”来描述软件的职责,以把代码本身的效用与其他单元(element)代码带来的边际效用中区分出来。
8. 使用mock作为还未编写的相关代码模块的替身
BDD实践: