行为驱动的开发是否使用单元测试或集成("汇编")测试?

时间:2014-05-03 04:08:08

标签: unit-testing testing integration-testing bdd acceptance-testing

我们是否应该将BDD测试分类为"单元测试"或者"集成测试" ("汇编测试"或"字符串测试")?困惑,因为技术上BDD测试是使用*单元工具运行的,尽管测试可能(并且在大多数情况下)涵盖了几个组件,因为它们可能用于端到端测试用例。

1 个答案:

答案 0 :(得分:1)

BDD没有一种测试。它使用验收测试和单元测试。

首先是验收测试。验收测试的目的是定义和验证高级别的应用程序功能 。验收测试通常使用JBehave或Cucumber等BDD工具编写,而不是使用单元测试工具。您可以使用单元测试工具编写验收测试,但这不如使用真正的BDD工具那么好,因为单元测试工具将规范和实现混合在同一个文件中,使得更难关注行为。从技术上讲,验收测试是集成测试,因为它们针对整个应用程序堆栈运行。

一旦实施验收测试,BDD将继续进行测试,以定义和验证所需应用程序行为的详细信息并确保技术正确性。

  • 可以使用与验收测试相同的工具编写其他集成测试,也可以使用单元测试工具编写,但不要隔离应用程序层。即使它们使用与验收测试相同的工具编写,它们也只是集成测试,因为它们受需求细节和工程问题的驱动,而不是高级要求。

  • BDD还使用常规单元测试来测试需求细节和技术问题。

典型的BDD测试套件包括全套验收测试,有限数量的集成测试(验收测试除外)以及大量单元测试。靠近用户的应用层(例如控制器)通常在验收测试中大部分或全部进行测试,而较低层(例如模型)需要更多的单元测试。