课程章节介绍
同学们,今天咱们聊两个比较进阶但很实用的技巧:怎么在测试里处理权限集组,还有怎么用好平台缓存。先看权限集组。你要是在 Apex 里需要测试权限集组的逻辑,会碰到一个问题——权限集组的计算通常是异步的,测试等不起。这时候就用 `System.Test` 类里的 `calculatePermissionSetGroup()` 方法,它能强制立刻完成权限计算,让你马上验证结果。但是,这个方法会吃处理器资源,所以不要到处乱调,最好只放在 `@TestSetup` 方法里运行一次,给整个测试类共享,这样既高效又不会超限。
接下来重点说说缓存。缓存就像是提前把很难拿到的数据放在手边,随用随取,速度飞快。Salesforce 提供了两种缓存:一种是会话缓存,每个用户独享自己的一份,最多能存 8 小时;另一种叫组织缓存,是整个公司的所有用户都能看到,最长可以活 48 小时。只要你是通过安全审查的托管包,就有 3MB 的免费缓存空间,别浪费。需要特别记住的是,缓存的操作是事务性的——如果 Apex 事务中途失败了,比如因为异常回滚了,那这次事务里对缓存做的一切改动也会跟着回滚,这样数据就不会乱。
最后,什么样的数据最适合塞进缓存?记住三个特征:第一,在用户整个会话里会被反复用到的数据,比如用户的个性化配置;第二,基本上不会变动的静态数据,像国家代码列表;第三,获取成本特别高的数据,比如需要跑复杂运算、调用好几次外部接口才得到的。这些放进缓存之后,你的应用响应速度能提升不少。
好了,这两块内容先理解到这里,下次课上我们会动手写几个例子,会更清楚。有什么问题随时问。
关键词
Apex
Salesforce
Developer Guide