1

当我使用生菜编写测试时,我想创建一个巨大的场景,其中包含一个用户在网站上进行所有可能的操作。但是测试工具让我的目标是把它们分开。它有什么好处?

4

2 回答 2

2

您将“BDD”放入此问题的标题中,并使用“BDD”和“TDD”标签对其进行标记。所以你对行为 驱动开发测试 驱动开发感兴趣。

为什么你应该一次推动开发而不是一次推动整个应用程序?这就是您的问题在 BDD 和 TDD 的上下文中的含义。

接下来,您将编写一种方法,一种额外的功能。当然,这一点会影响整体行为,了解您尝试开发的整体行为是件好事,但您需要专注。您需要知道下一位何时工作和完成,以便您可以继续进行下一位。对整个应用程序的全面测试一开始会失败;在您实现第一个功能后它将失败;当你完成一半时它会失败,当你完成 99% 时它会失败。不幸的是,当你 100% 完成时,它也可能会失败——现在你必须找到你出错的地方,并修复那个位(或那些位)。

但是如果你只写一个新功能的测试,它现在就会失败,它会在五分钟、十分钟、二十分钟或一个小时内通过。然后你就会知道是时候进行下一点了。当您编写更多测试并实现更多功能时,它将继续通过。当您完成 99% 时,您将通过 99% 的最终测试 - 以及 100%,减去您当前的测试。您可以看到自己的真实进步,并知道您所写的最新内容确实有效。

这就是为什么您应该编写小测试,一次一个,并让它们一次通过一个。

于 2015-07-16T14:30:06.193 回答
1

我想到了三个重要的事情:

  • 可读性:当场景失败时,第一眼看场景名称就更容易理解出了什么问题,并且当它很小且集中时更容易修复

  • 可维护性:更容易修改/更新小场景

  • 独立性:大型场景倾向于使步骤相互依赖。这样,场景中的动作越远,它就越依赖于以前的动作,以更复杂的方式难以理解。这直接影响了前面的两个原因。

于 2015-07-16T14:14:51.860 回答