Testing RESTful web services with static resources
For obvious reasons, Salesforce does not make callouts to external web services when running Apex tests. There is no guarantee an endpoint is defined or available for testing, and the callout would hinder and slow down the running of any unit tests by an order of magnitude.
Because of this, we have to be able to provide mock responses to any web service callouts made within our tests and return the appropriate response for the test to utilize. For those unfamiliar with the terminology, mocking a service simply means providing an implementation to act in its place. In this case, we will be providing a placeholder for the responding endpoint for testing purposes.
Salesforce provides an interface called HttpCalloutMock
that a developer can implement as part of their unit testing when handling HyperText Transfer Protocol (HTTP) callouts. Salesforce also provides a couple of standard implementations of this interface to help in...