Я разработал функциональность, которая использует класс HttpRequest
. Чтобы проверить это, я использовал HttpCalloutMock
. Эта функциональность находится в пределах метода @future (callout=true)
. Я разработал тестовые классы по документации для HttpCalloutMock
. Тесты (2) проходят в песочнице, но при развертывании на производство они оба дают ошибку System.NullPointerException
(видимо, HttpResponse
равно null) в строке утверждения. Вот код для тестов и реализаций HttpCalloutMock
в пределах того же класса Test:Исключение при развертывании 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.
Вы когда-нибудь находили решение этого вопроса? –