Below is the test class to test an HTTP Callout from apex:
Main Test Class
@isTest
global class HttpCalloutToFeedTest {
@isTest static void testCallOutToFeed() {
Test.setMock(HttpCalloutMock.class, new HttpCalloutToFeedMock());
HttpResponse res = HttpCalloutToFeed.sentMessageToFeed();
System.assertEquals(201, res.getStatusCode());
}
}
HTTP Callout Mock
@isTest
global class HttpCalloutToFeedMock implements HttpCalloutMock {
global HTTPResponse respond(HTTPRequest httpreq) {
System.assertEquals('http://cloudsole-feed.herokuapp.com/sfdc/public/feed', httpreq.getEndpoint());
System.assertEquals('POST', httpreq.getMethod());
String message = '{"name": "Test Class for CloudSole Feed", "message": "This test passed!!!"}';
httpreq.setHeader('Accept', 'application/json');
httpreq.setHeader('Content-type', 'application/json');
httpreq.setBody(message);
httpreq.setMethod('POST');
HttpResponse res = new HttpResponse();
res.setStatusCode(201);
return res;
}
}
As this is a POST there is no allot of response but the statusCode. 201 means created so the feed was successfully created.