用用Python进行行为驱动开发的入门教程进行行为驱动开发的入门教程
为驱动开发(Behavior-Driven Development,BDD)是一种卓越的开发模式。能帮助开发者养成日清日结的好习惯,从而避免甚
至杜绝“最后一分钟”的情况出现,因此对提高代码质量是大有裨益的。其与Gherkin语法相结合的测试结构及设计形式,使得
对团队的全部成员包括非技术人员都具有极好的易读性。
所有代码都必须进行测试,这意味着上线时把系统瑕疵降到最低甚至为零。这需要与完整的测试套件相配,从整体把控软件行
为,使得检测与维护都能有序进行。这就是BDD的魅力所在,难道不心动吗?
什么是什么是BDD?
BDD的概念和理论源自TDD(测试驱动开发),类似于TDD的理论要点是在编码前先写好测试。不同点是除了使用单元测试进行
细粒度化测试,还使用接受测试(acceptance tests)贯穿程序始末。接下来我们会结合Lettuce测试框架进行讲解。
BDD过程可简单概括为:
编写一个缺陷接受测试
编写一个缺陷单元测试
使单元测试通过
重构
使接受测试通过
在每个功能里,如有需要重复上述步骤。
敏捷开发中的敏捷开发中的BDD
在敏捷开发中,BDD更是如鱼得水。
如果项目的新功能和新需求每隔一、两个星期就发生变更,那么该团队需要配合进行快节奏的测试和编码工作。Python中的
接受和单元测试可以帮助实现该目标。
接受测试为人熟知的是使用了一个英文格式的“特性”描述文件,内容是含有的测试以及个别测试。这样做的好处是使整个项目
团队都参与其中,除了开发者,还有管理者与商业分析者等不参与实际测试过程的非技术成员。
特性文件的编写遵循全员可读的规则,使技术和非技术成员都能清楚理解与接收。如果只包含单元测试,那么有可能会导致需
求分析不全面或不能达成共识。接受测试的最大优点是适用性强,不论项目规模大小都能运用自如。
Gherkin语法语法
通常会使用Gherkin来编写接受测试,Gherkin来自Cucumber框架,由Ruby语言所编写。Gherkin语法十分简单,在Lettuce
Python中主要使用以下8点来进行特性和测试的定义:
Given假设
When时间
Then下一步
And与
Feature特性:
Background背景:
Scenario Outline场合大纲:
安装安装
使用Python常用的pip install语句就可完成Lettuce包的安装:
$ pip install lettuce