【发布时间】:2019-10-07 13:40:42
【问题描述】:
如果我有一个名为 authorize() 的 Apex 函数,它只获取用户名、密码和会话令牌,以及另一个名为 getURL('id#', 'key') 的函数,它将记录的 id# 作为字符串和密钥用于图像作为参数作为字符串返回。 getURL 调用其中的授权函数以获取其标注的凭据。 authorize 是一个 post 请求,getURL 是一个 get 请求。
我试图弄清楚如何测试这两个标注,以便确保 getURL 返回正确的 JSON 作为响应。它甚至不一定是 URL,这最终是它的意图。但我只需要对其进行测试以确保这些标注正常工作,并且我得到了它需要的 75% 代码覆盖率的响应。
我创建了一个如下所示的 multiRequestMock 类:
public class MultiRequestMock implements HttpCalloutMock {
Map<String, HttpCalloutMock> requests;
public MultiRequestMock(Map<String, HttpCalloutMock> requests) {
this.requests = requests;
}
public HTTPResponse respond(HTTPRequest req) {
HttpCalloutMock mock = requests.get(req.getEndpoint());
if (mock != null) {
return mock.respond(req);
} else {
throw new MyCustomException('HTTP callout not supported for test methods');
}
}
public void addRequestMock(String url, HttpCalloutMock mock) {
requests.put(url, mock);
}
}
然后我开始编写一个 calloutTest.cls 文件,但不知道如何使用这个模拟类来测试我的原始函数。对此的任何澄清或帮助都会有所帮助。谢谢。
【问题讨论】:
标签: testing post get httprequest apex