我开发了一个使用HttpRequest
类的功能。为了测试它,我使用HttpCalloutMock
。该功能位于@future (callout=true)
方法中。我根据HttpCalloutMock
的文档开发了测试课程。测试(2)在沙箱中传递,但在部署到生产时,它们在断言行中都会给出错误System.NullPointerException
(显然HttpResponse
为空)。下面是同一个测试类中的测试和实现对HttpCalloutMock
代码:部署HttpCalloutMock时出现异常
@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。
你有没有找到解决这个问题的方法? – 2013-05-21 14:12:52