我最近听说过BDD,发现它与TDD非常相似.
你使用这两个中的哪一个(如果有的话)?
哪个是各自的利弊?
BDD与TDD类似,但心态不同.在BDD中,您尝试创建可执行规范而不是测试.这主要是通过使用不同的词汇表但与TDD类似的机制来实现的.
BDD似乎是对许多人声称正在进行TDD但是编写集成测试而不是单元测试的情况的反应.BDD人士认为谈论测试是误导性的,因此测试成为规范.这似乎有点形而上学,但背后有一些好的想法.
我非常喜欢BDD = TDD完成了适当的阵营.如果您正在进行Beck最初描述的TDD - 并且由许多人实践 - 那么基本上没有区别.
BDD带来的是用于描述该过程的语言的一些有趣变体.通过在流程描述和工具中使用备用术语,BDD民众希望鼓励更好的实践 - 这是一个值得称道的目标.
我已经做了很长时间的TDD,现在我很难判断这是否真的有帮助.我想(希望:-)我已经学到了BDD工具/语言鼓励的许多课程,因此它们似乎没有为我提供太多额外的价值.当然YMMV - 我还没有使用BDD工具完成一个完整的"真实世界"项目 - 所以我可能会进行个人实验并推断太远.
我猜想 BDD工具/语言对于民间被引入这种接近开发的方式可能更有用 - 因为它们避免了在更传统意义上使用"测试"的整个混乱.我自己还没有这样做 - 如果这里的人有这样的经历,我会很感兴趣.