HttpRequest
クラスを利用した機能を開発しました。それをテストするために使用しHttpCalloutMock
ました。この機能は@future (callout=true)
メソッド内にあります。のドキュメントに従ってテスト クラスを開発しましたHttpCalloutMock
。テスト (2) はサンドボックスに合格しますが、本番環境にデプロイすると、どちらもアサーション ラインでエラーSystem.NullPointerException
(明らかに the HttpResponse
is 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。