我开发了一个利用HttpRequest
类的功能。为了测试它,我使用了HttpCalloutMock
. 此功能在@future (callout=true)
方法中。我按照HttpCalloutMock
. 测试 (2) 在沙盒中通过,但在部署到生产环境时,它们都在断言行中给出错误System.NullPointerException
(显然HttpResponse
是 null)。HttpCalloutMock
以下是同一 Test 类中的测试代码和实现:
@isTest
global class TrustCalloutTest {
global class TrustCalloutMockBasicCallout implements HttpCalloutMock {
global HTTPResponse respond(HTTPRequest req) {
HttpResponse res = new HttpResponse();
res.setBody('TEST');
res.setStatusCode(200);
return res;
}
}
global class TrustCalloutMockRequestKey implements HttpCalloutMock {
global HTTPResponse respond(HTTPRequest req) {
HttpResponse res = new HttpResponse();
res.setBody('RECEIVED');
res.setStatusCode(200);
return res;
}
}
static testmethod void testCalloutRequireKey() {
HttpResponse res;
Test.setMock(HttpCalloutMock.class, new TrustCalloutMockRequestKey());
res = TrustCallout.requestTransferKey('BLAH','https://beta2.trustpoint.fi/API/requirekey.php');
System.assertEquals(200, res.getStatusCode());
}
static testmethod void testCalloutBasicCallout(){
HttpResponse res;
Test.setMock(HttpCalloutMock.class, new TrustCalloutMockBasicCallout());
res = TrustCallout.basicCallout('BLAH','https://beta2.trustpoint.fi/API/committransfer.php');
System.assertEquals(200, res.getStatusCode());
}
}
实际的标注工作正常,它也遵循文档。你能看出哪里不对吗?
谢谢。
MGA。