Test Reports

DEX455 - Reports API、Sites、Support Classes 与 Territory Management

📄 第 341 页 🎬 视频课程

课程章节介绍

同学们,我们接着说测试这件事儿。 大家可能已经习惯了,自己写的Apex代码要写测试类来保证覆盖率。那么,当你用Apex去调用Salesforce的报表和仪表板API的时候,是不是就不用测试了呢?不是的,同样需要写测试,也要有测试覆盖率,这一样都不能少。 不过这里有个特别的地方要注意:我们平时写的一些Apex类,有时候会在“系统模式”下运行,也就是忽略当前用户的权限。但是,报表相关的Apex方法可不是这样,它们就在当前这个真实用户的上下文中运行。也就是说,这个用户能看到哪些报表、有哪些字段的访问权限,Apex代码就只能拿到这些数据。 这就意味着,我们在写测试的时候,必须模拟出不同用户的权限场景。比如说,你创建了一个测试用户,只给了他几张报表的查看权限,然后让这个用户去跑那段访问报表的代码。这样你才能确保,代码在真实环境中,无论哪个用户来用,它都能正常工作,而不会因为权限不够突然报错。 所以记住两个要点:第一,报表和仪表板的Apex代码也需要测试覆盖率;第二,它们以当前用户身份运行,所以测试时要考虑权限。好,我们继续下一张。

关键词

Apex Salesforce Developer Guide