当为一个简单的Rails应用程序编写规范时,下面的方法是否是完整测试覆盖率的正确方法?
这是否足够,太多(例如,如果我编写了特性规范,我可以跳过一些低级规范),还是不够?为什么?
发布于 2015-08-22 11:22:44
您不需要为每个层中的每个对象编写规范来获得100%的测试覆盖率或测试驱动(要求您实现)应用程序中的所有重要行为。相反,正如行为驱动开发(BDD)所建议的那样,在外部编写规范,只在必要时编写低级规范。
测试完整性的最重要的衡量标准是需求覆盖:它有助于每个用户故事,以及每个需要新代码的故事的每个细节,至少要用一个测试来表示。如果您正在遵循典型的敏捷实践(提到用户故事表明您是敏捷实践),那么您的测试可能是记录需求的唯一地方,因此您可能无法在这种覆盖率上提供一个数字。它也是有益的
每一个故事,
此时,您已经测试了每个层(控制器、模型、视图、帮助程序、邮件程序等)。已经存在了,只有特征规格。
您可能根本不需要某种规格:
只要您总是在编写新代码之前编写测试,您将始终拥有100%的行覆盖率。
发布于 2015-08-22 08:23:22
这个测试策略听起来很全面。如果所有这些测试都已经就绪,那么您就有了很好的测试覆盖率。然而,交付项目需要更长的时间。你也不会像做更有限的测试的人那样敏捷。测试必须适合这个项目。不要过度测试。过度测试会耗费时间和金钱。别受考验。接受测试会耗费时间和金钱。
有正确的方法来进行单元测试。有正确的方法来进行集成测试。手套必须要合身。如果您的应用程序主要是面向前端的,那么最好从集成测试开始。如果您编写后端应用程序或API,那么单元测试可能是一个更好的起点。我认为接近一种测试风格,然后扩展到不同的风格是一个更好的开始,而不是尝试和测试您的应用程序的每一层。
为什么不从简单的单元测试开始呢?它们很容易写。编写这些测试,然后跟踪您发送的bug数量。你让太多虫子进来了吗?你有很多回归问题吗?是否有您的套件没有发现的bug正在进入生产过程?如果答案是肯定的,那么也许是时候写一些更高水平的测试了。记住,测试越高,开发成本就越高。
如果您没有发布错误,那么您就没有理由编写更多的测试。记住这里的最终目标。我们想要发送没有bug的代码。如果我们可以编写一个测试和一个单独的测试,以确保我们正在这样做,那么就没有理由进一步测试了。
https://stackoverflow.com/questions/32143107
复制相似问题