HTTP Mock inspired by Robert Sösemann’s Apex Http Mock.
HTTP Mock Lib is part of Apex Fluently, a suite of production-ready Salesforce libraries by Beyond the Cloud.
❌❌❌
@isTest
global class MockHttpResponseGenerator implements HttpCalloutMock {
global HTTPResponse respond(HTTPRequest req) {
HttpResponse res = new HttpResponse();
res.setHeader('Content-Type', 'application/json');
res.setBody('{"example":"test"}');
res.setStatusCode(200);
return res;
}
}
Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator());✅✅✅
new HttpMock()
.whenGetOn('/api/v1/authorize').body('{"example":"test"}').statusCodeOk()
.mock();@IsTest
private class MyTest {
@IsTest
static void calloutTest() {
new HttpMock()
.whenGetOn('/api/v1/authorize').body('{ "token": "aZ3Xb7Qk" }').statusCodeOk()
.whenPostOn('/api/v1/create').body('{ "success": true, "message": null }').statusCodeOk()
.mock();
Test.startTest();
new CalloutService().makeCallout();
Test.stopTest();
// Asserts
Assert.areEqual(..., ...);
}
}public interface HttpMockLib {
HttpMock whenGetOn(String endpointToMock);
HttpMock whenPostOn(String endpointToMock);
HttpMock whenPutOn(String endpointToMock);
HttpMock whenPatchOn(String endpointToMock);
HttpMock whenDeleteOn(String endpointToMock);
HttpMock whenTraceOn(String endpointToMock);
HttpMock whenHeadOn(String endpointToMock);
// Body
HttpMock body(Object body);
HttpMock body(String body);
HttpMock body(Blob body);
// Content-Type
HttpMock contentTypePlainText(); // text/plain
HttpMock contentTypeHtml(); // text/html
HttpMock contentTypeCsv(); // text/csv
HttpMock contentTypeJson(); // application/json
HttpMock contentTypeXml(); // application/xml
HttpMock contentTypePdf(); // application/pdf
HttpMock contentTypeFormUrlencoded(); // application/x-www-form-urlencoded
HttpMock contentType(String contentType);
// Status Code
HttpMock statusCodeOk(); // 200
HttpMock statusCodeCreated(); // 201
HttpMock statusCodeAccepted(); // 202
HttpMock statusCodeNoContent(); // 204
HttpMock statusCodeBadRequest(); // 400
HttpMock statusCodeUnauthorized(); // 401
HttpMock statusCodeForbidden(); // 403
HttpMock statusCodeNotFound(); // 404
HttpMock statusCodeMethodNotAllowed(); // 405
HttpMock statusCodeInternalServerError(); // 500
HttpMock statusCodeNotImplemented(); // 501
HttpMock statusCodeBadGateway(); // 502
HttpMock statusCodeServiceUnavailable(); // 503
HttpMock statusCodeGatewayTimeout(); // 504
HttpMock statusCode(Integer statusCode);
// Headers
HttpMock header(String key, String value);
// Mock
void mock();
}Visit the documentation to view the full documentation.
- For proper license management each repository should contain LICENSE file similar to this one.
- each original class should contain copyright mark: © Copyright 2025, Beyond The Cloud Sp. z o.o. (BeyondTheCloud.Dev)