课程章节介绍
好,我们来说说怎么测试那些用了“延续”(Continuation)的控制器。
在Apex里,延续是用来做长时间异步调用的,比如对外部服务的HTTP请求。但在测试里,你不能真的去调用外部服务,因为Apex测试不支持真正的网络调用。
所以,我们就需要模拟这个过程。你可以用两个关键的方法:
第一个是 `Test.setContinuationResponse`,用它来为某个延续对象设置一个假的响应,相当于你提前告诉系统:“等一下如果这个延续被执行,就返回我准备好的这个假数据。”
第二个是 `Test.invokeContinuationMethod`,它的作用是,在测试里手动触发那个延续的回调方法,就像真的收到了响应一样,让回调逻辑跑起来。
具体步骤很简单:
1. 在测试里,先调用你的控制器方法,拿到它返回的延续对象。
2. 验证这个延续的请求内容是不是你期望的,比如端点、方法、参数对不对。
3. 然后用 `Test.setContinuationResponse` 设置一个模拟的响应体。
4. 再用 `Test.invokeContinuationMethod` 执行回调。
5. 最后,验证控制器里的结果变量是不是和模拟的响应一致。
这样一来,你既满足了代码覆盖率的要求,又确保了异步回调逻辑是正确的,而且完全不用真的去访问外部系统。
关键词
Apex
Salesforce
Developer Guide