Async WSDL Callouts — Callback & Testing

DEX455 - Apex 集成与工具完全指南:Callouts、命名凭据、WSDL2Apex、Mock 测试

📄 第 415 页 🎬 视频课程

课程章节介绍

同学们,我们一起来看这一页幻灯片。这里讲的是,当我们通过WSDL生成的Apex类去调用外部服务,并且在控制器里用异步延续的方式来处理响应的时候,该怎么测试。 首先,在回调方法里,我们拿到响应后,通常会调用响应对象上的 `getValue` 方法,这样才能提取到服务端返回的真实数据。那在编写测试的时候,这种基于WSDL的异步调用,其实和测试HTTP响应的延续非常相似,套路是接近的。 我们分步来看。第一步,你需要创建一个实现 `WebServiceMock` 接口的类,这个类可以非常小,只是提供一个模拟的响应就够了。然后在测试方法里,先调用控制器的动作方法,这时候会得到一个延续对象。接着,我们可以验证一下发出的请求参数是否正确。然后,创建一个模拟的 `HttpResponse`,把你想让服务端返回的数据填进去。再调用 `Test.setContinuationResponse` 方法,把这个模拟响应绑定到延续上。紧接着,用 `Test.invokeContinuationMethod` 来手动触发回调方法,让控制器处理这个模拟响应。

关键词

Apex Salesforce Developer Guide