一、概念
TDD, 测试驱动开发(Test-DriverDevelopment)的简称,是敏捷开发中一项核心实践和技术,也是一种设计方法论。TDD 的原理是开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD 的基本思路是通过测试来推动整个开发的进行,但测试驱动开发并不只是简单的测试工作,而是把需求分析、设计和质量控制量化的过程。
ATDD,验收测试驱动开发(Acceptance Test Driven Development),验收测试驱动开发是一种实践。面向开发人员,强调如何实现系统以及如何通过验收测试。
BDD,行为驱动开发(Behavior Driven Development)的简称,建立在TDD的基础之上,也是一种敏捷软件开发技术,它鼓励软件项目中开发者、QA、非技术人员或商业参与者之间的协作。主要是从用户的需求出发,强调系统行为。以下主要使用 Cucumber 进行操作(一提到BDD就能立马想到的工具):
二、Cucumber框架
它是一种支持 BDD 的工具。Cucumber读取以纯文本编写的可执行规范的测试用例,并验证软件是否符合这些规范所述。(说白了就是提供一个我们自己能理解的语言,通过语言来编写测试用例)。Cucumber支持大多数的编程语言,如Ruby,JAVA和Python,官方地址:https://cucumber.io/
2.1 基础介绍
由Features、Step_definitions、Cucumber command 组成。
对应传统测试工具:
Feature (功能)-------------test suite (测试用例集)
Scenario(情景)-----------test case (测试用例)
Given(给定)-------------setup(创建测试所需环境)
When(当)----------------test(触发被测事件)
Then(则)-----------------assert(断言,验证结果)
Features:
Step_definitions:
Cucumber command: