行为驱动还是测试驱动的开发?
时间:2020-03-06 14:36:22 来源:igfitidea点击:
我最近听说BDD,发现它与TDD非常相似。
我们使用这两个中的哪一个(如果有)?
每种优点和缺点是什么?
解决方案
BDD与TDD类似,但心态不同。在BDD中,我们尝试创建可执行文件规范而不是测试。这主要是通过使用与TDD不同的词汇来实现的。
BDD似乎是对许多情况的一种反应,在这些情况下,人们声称自己正在执行TDD,但他们编写的是集成测试而不是单元测试。 BDD人们认为谈论测试具有误导性,因此测试成为规范。这似乎有点形而上学,但背后有一些好主意。
我非常重视BDD = TDD的正确设置。如果我们按照贝克最初描述的方法进行了TDD测试,并且被许多人实践过,那么基本上没有什么区别。
BDD带来的是用于描述过程的语言上的一些有趣的变体。通过在过程和工具的描述中使用替代术语,BDD人士希望鼓励更好的实践,这是值得称赞的目标。
我从事TDD已有很长时间了,我很难判断这是否真的有帮助。我认为(希望:-)我已经学到了BDD工具/语言所鼓励的许多课程,因此它们似乎并没有为我提供更多的价值。当然,YMMV和我还没有使用BDD工具完成整个"现实世界"项目,因此我可能会进行自己的实验并推断得太远。
我猜想BDD工具/语言对于被介绍给这种开发方式的人们可能会更有用,因为它们避免了以更传统的意义使用"测试"的整个混乱。我自己还没有做过,如果这里的人有任何这样的经验,我会很感兴趣。