当我使用莴苣编写测试时,我想创建一个包含用户在网站上进行所有可能操作的巨大场景。但是测试工具让我把目标分开。它有什么好处?
答案 0 :(得分:2)
你把" BDD"进入这个问题的标题,并用" BDD"和" TDD"标签。因此,您对行为 驱动开发和测试 驱动开发感兴趣。
为什么要一次推动开发而不是一次性驱动整个应用程序?这就是你的问题在BDD和TDD背景下的含义。
接下来,您将编写一个方法,一个额外的功能。当然,这一点将有助于整体行为,了解您正在尝试开发的整体行为是有益的,但您需要关注。您需要知道下一位何时工作并完成,因此您可以继续下一位。对整个应用程序的全面测试将在开始时失败;在实现第一部分功能后,它将失败;当你完成一半时它会失败,当你完成99%时它会失败。不幸的是,当你100%完成时它可能也会失败 - 现在你必须找到你出错的地方,并修复那个位(或那些位)。
但是如果你只是编写一个新功能的测试,那么它现在就会失败,它会在五分钟或十分钟或二十分钟或一小时内通过。然后你就知道下一点的时间了。当你编写更多测试并实现更多功能时,它将继续传递。当你完成99%时,你将有99%的终极测试通过 - 以及当前测试的100%,减1。你可以看到你真正的进步,并知道你所写的最新内容确实有效。
这就是为什么你应该一次编写一个小测试,并让它们一次传递一个。
答案 1 :(得分:1)
我想到了三个重要的事情:
可读性:当一个场景失败时,通过第一眼就可以更容易地理解场景的名称出了什么问题,并且当它的小而且集中时更容易修复
可维护性:修改/更新小方案更容易
独立性:大型场景倾向于使步骤彼此依赖。这样,场景中的动作越多,它就越依赖于先前的动作,以更复杂的方式难以理解。这直接影响了前两个原因。