我開發了一個使用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