+ Start a Discussion

Problem with Test Method which is using HTTP methods

Hello there,


I have a test method that is using following code:


01.    protected virtual HttpResponse executeLinkedInRequest(HttpRequest req)
02.    {
03.        HttpResponse res;
04.        res = new Http().send(req);
06.            if (req.getMethod() == 'POST' && res.getStatusCode() != 201)
07.            {
08.                System.debug('OAuth header:'+res.getHeader('oauth_problem'));
09.                throw new TwitterApiException (res.getBody());
10.            }
11.            else if (req.getMethod() == 'GET' && res.getStatusCode() != 200)
12.                throw new TwitterApiException (res.getBody());
13.        return res;
14.    }


When I am running the Test Class which contains this code, it is running till line number 04. Rest of the code comes in Red lines i.e. they are not getting executed. I know the root of the problem is HTTP().send(req) method. But, I am not able to understand why is that causing problem and how to make it work. Please help.


Thanks in advance.


Isnt your test class failing ? We are not allowed to make callouts from a test method. 


Look at this if you want to cover classes with callouts.



Well, My test class is not failing even though the execution is not going beyond that code. That is why I am not able to track the problem.


Have u checked the debug log ? You will be able to find the execution summary there. That might help


Actually my test class doesn't contain this code. I am just calling this code from my test class. I checked debug logs and its not giving any error or exception.


@swatkat is correct -- testmethods will not execute callouts (nor will they send emails for that matter FYI). You need to use the Test.setMock() method to simulate the callout and its response.


Think about it -- if testmethods could execute callouts, those callouts could do destructive changes in some system - and not be rolled back like all other SFDC DML is rolled back upon conclusion of the testmethod 


Refer to the APEX dev Guide documentation as noted by @swatkat

Thank you for your time and reply guys.