J'ai développé une fonctionnalité qui utilise la classe HttpRequest
. Afin de le tester j'ai utilisé HttpCalloutMock
. Cette fonctionnalité est dans une méthode @future (callout=true)
. J'ai développé les classes de test suivant la documentation pour HttpCalloutMock
. Les tests (2) passent dans le bac à sable, mais lors du déploiement en production, ils donnent l'erreur System.NullPointerException
(apparemment le HttpResponse
est nul) dans la ligne d'assertion. Voici le code pour les tests et les mises en œuvre pour HttpCalloutMock
dans la même classe de test:Exception lors du déploiement d'un 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());
}
}
La réelle fonctionne normalement callout, et il suit également la documentation. Pouvez-vous repérer quelque chose de mal?
Merci.
MGA.
avez-vous déjà trouvé une solution? –