在为简单的Rails应用编写规范时,以下是否是覆盖完整测试范围的正确方法?
这是否足够(例如,如果我已编写功能规范,可以跳过一些较低级别的规范)还是不够?为什么?
最佳答案
您无需为每一层中的每个对象编写规范即可获得100%的测试覆盖率,也无需测试驱动(要求您实现)应用程序中的所有重要行为。取而代之的是,按照行为驱动开发(BDD)的建议,仅在必要时在外部编写规范,并编写较低级别的规范。
测试完整性的最重要衡量标准是需求覆盖率:它对于每个用户故事以及需要新代码的每个故事的每个细节(至少要在一个测试中表示)都很有帮助。如果您遵循典型的敏捷实践(提及用户故事表明您是的),则测试可能是记录需求的唯一位置,因此,您可能无法在这种涵盖范围内加一个数字。有帮助也有帮助
对于每个故事,
至此,您已经测试驱动每个层( Controller ,模型, View ,帮助程序,邮件程序等)的存在,并且仅具有功能规范。
请注意,尽管您的功能规范已经通过模型和辅助方法测试了快乐路径,但是一旦您开始为较小或错误情况编写方法示例,您可能会想要为该方法编写一个或多个快乐路径示例同样,您可以在一处看到该方法的完整描述,因此您可以仅通过运行其所有示例来完全测试该方法,而不必运行任何功能规范。
您可能根本不需要某些规范:
只要您始终在编写新代码之前编写测试,就始终可以保持100%的线路覆盖率。
关于ruby-on-rails - 如何使用RSpec测试Rails应用程序以获得完整的测试范围?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32143107/