课程章节介绍
同学们好,今天我们聊一个非常容易踩坑的话题:测试覆盖率。
Salesforce要求我们写的Apex代码至少要有75%被测试覆盖,这大家都知道。但很多同学一上来就盯着那个数字,不停地跑测试看百分比,千方百计就为了凑够75%。其实,这是一个常见的误区。
我们真正应该做的,是忘记那个百分比,把心思放在,覆盖所有业务用例,上。
什么意思呢?就是你写的这个功能,用户会怎么用?正常的流程要测,这叫积极情况。比如用户正确提交了一个订单,系统应该顺利创建记录。那如果用户填错了信息、或者缺少必填字段呢?这些消极情况,也就是异常流程,同样要测。因为真实世界里,用户犯错太正常了。
另外,还要记住一点:你的代码可能在处理一条记录时好好的,但一下子进来200条记录,会不会崩?所以,单元测试里既要测单条记录的场景,也必须模拟批量处理的场景,比如一次插入200条数据,看看触发器、各种逻辑能不能扛得住。
当你真正把积极情况、消极情况、单条、批量这些真实世界的场景都覆盖到了,你会发现,75%的覆盖率自然就达到了,甚至远远超过。而且这时候你的代码是真正健壮的,上线以后你不会提心吊胆。
一定要记住:单元测试的目标从来不是凑那个数字,而是给你信心——让你确信,当真实用户在各种五花八门的情况下使用你的应用时,代码都能稳稳地给出正确的结果。
所以,下次写测试的时候,别问“覆盖率够不够75%”,要问自己:“我把所有可能的用户使用场景都测到了吗?” 这才是全面的质量保证。
关键词
Apex
Salesforce
Developer Guide