
验收测试
|
261
的行为、需要很长时间执行,并且失败概率较高,因此如果测试套件以端到端
为主,必然会导致测试覆盖率差、执行时间慢和效果不确定的结果。
验收测试
如我们之前所述,
验收测试
和端到端测试只是范围不同,验收测试不包括测试依赖的第
三方服务。例如,如果你开发了一个使用外部
Payments
服务的
Company Accounts
系
统,并且打算为其编写验收测试,那么你可以使用最新的
Company Accounts
代码和一
个
Payments
服务的
Stub
。
你可以像编写其他测试一样来编写验收测试,在测试前加入一些自动操作,以及在测试
后进行一些断言。但是,因为验收测试所处的位置不同,所以对待方式也略有不同。验
收测试是自动化测试的最高形式,测试过程中的一切都在你的完全控制之下,例如,你
可以创建和删除数据、启动或停止服务、检查服务的内部状态等。这意味着你可以在验
收测试中重新编写业务需求,直到非技术人员也可以轻松地检查测试结果。
行为驱动开发(
BDD
)正是采用了这个想法,几乎已经成为验收测试的代名词。在本节
的其余部分中,我们假设你会使用
BDD
来编写验收测试,因此会以此为基础介绍相关
的实践经验和主要工具。
行为驱动开发
行为驱动开发(
BDD
)是一种开发系统的技术,是比
TDD
更大的概念。它的核心思想是,
对于每个用例或者场景,你需要列出用户使用系统时感知的行为,然后将这些行为表示
为一系列的步骤,再将这些步骤转换为可执行的操作。随后,我们可以在系统上执行这
些操作,如果所有操作都成功,那么可以认为系统实现正确 ...