什么是 行为驱动开发
基于行为规范的开发
BDD(行为驱动开发)
BDD 是一种软件开发方法论,将TDD与业务可读语言的系统行为描述相结合。
Given/When/Then 语法
| 关键字 | 用途 | 示例 | |--------|------|------| | Given | 初始状态 | 假设用户已登录 | | When | 操作 | 当他们点击"购买" | | Then | 预期结果 | 那么商品被添加到购物车 | | And | 附加条件 | 并且显示通知 |
场景示例(Gherkin)
Feature: 购物车
Scenario: 将商品添加到购物车
Given 用户在商品页面
And 商品有库存
When 用户点击"加入购物车"
Then 商品出现在购物车中
And 购物车计数器增加1
BDD vs TDD
| 方面 | TDD | BDD | |------|-----|-----| | 焦点 | 代码和单元 | 系统行为 | | 语言 | 技术性 | 业务语言 | | 参与者 | 开发人员 | 团队+业务 | | 文档 | 测试即代码 | 活文档 |
流行工具
- Cucumber — Ruby、Java、JS
- SpecFlow — .NET
- Behave — Python
- Jest + Cucumber — JavaScript
- Behat — PHP