gpt4 book ai didi

testing - TDD 和 BDD 的区别

转载 作者:行者123 更新时间:2023-11-28 19:38:25 25 4
gpt4 key购买 nike

老实说,我看不出 BDD 和 TDD 之间的区别。我的意思是,两者都只是测试是否会发生预期的情况。我见过如此充实的 BDD 测试,它们实际上可以算作 TDD 测试,我也见过如此模糊的 TDD 测试,它们将大量代码黑盒化。这么说吧,我非常相信两者兼有更好。

不过这是一个有趣的问题。我从哪说起呢?我是否从高级 BDD 测试开始?我是否从低级别的 TDD 测试开始?

最佳答案

I honestly don't see the difference between BDD and TDD.

那是因为没有。

I mean, both are just tests if what is expected happens.

这是错误的。 BDD 和 TDD 与测试完全没有任何关系。没有任何。纳达。 Zilch。压缩。尼克斯。丝毫没有。

不幸的是,TDD 几乎在所有事物中都有“测试”一词(不仅在其名称中,而且在测试框架、单元测试、TestCase(您通常继承自的类)、FooTest(通常包含测试的类)、testBar(测试方法的典型命名模式),以及许多与测试相关的术语,例如“断言”和“verification”),这让一些人相信它实际上确实与测试有关。因此,一些聪明人说:“嘿,让我们改个名字吧”,以消除任何可能的混淆。

这就是 BDD。它只是 TDD,将所有与测试相关的术语替换为与示例行为相关的术语:

  • 测试 → 示例
  • 断言 → 期望
  • 断言应该
  • 单位→行为
  • 验证 → 规范
  • ……等等

BDD 只是 TDD 的不同词。如果你正确地进行了 TDD,那么你就是在进行 BDD。不同之处在于 - 如果您至少相信 Sapir-Whorf 假说的弱形式 - 不同的词更容易正确地做。

关于testing - TDD 和 BDD 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4395469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com