课程章节介绍
我们来聊聊关于代码覆盖率的一个常见误区,以及在实际项目中你可能会遇到的一些情况。
你可能以为,只要我更新了Apex代码,系统就会自动帮我重新计算覆盖率。其实不是这样的——代码覆盖率的数据不会自动刷新。你必须,重新运行测试,,它才会根据最新的代码重新统计。所以,每当你改完代码,记得去跑一遍相关的测试类,不然你看到的覆盖率数字是旧的,可能会误导你。
另外,沙盒环境和生产环境的覆盖率有时会不一样。原因有好几个:比如测试失败了、测试类用了 `SeeAllData=true` 导致依赖了具体的数据、元数据存在差异,或者你在部署时只跑了部分包的测试等等。哪怕你在沙盒里某个新组件达到了100%的覆盖率,但如果整个组织的,平均覆盖率低于75%,,部署还是会被拦住。这时候,你就需要额外再补写一些测试,把整体覆盖率拉上去。
我建议你使用,完整沙盒,作为预生产环境,因为它最接近真实的生产数据,跑出来的覆盖率更有参考意义。最后要注意,如果生产环境中的覆盖率突然掉到了75%以下,很可能是数据或元数据的变更影响了测试的行为。这时候,你可以,在生产环境直接运行本地测试,,快速找出是哪个类出了问题,然后针对性修复。
这样解释,是不是清晰多了?记住,覆盖率是保障代码质量的门槛,多花点心思在测试上,后面部署会顺利很多。
关键词
Apex
Salesforce
Developer Guide