Testing RESTful web services with static resources
The use of static resources to improve our tests is not just limited to creating test data as we have seen previously; we can also utilize static resources to help us when testing web service callouts.
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 (OOM).
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.
Salesforce provides an interface called HttpCalloutMock
, which a developer can implement as part of their unit testing when handling HTTP callouts. Salesforce also provides a couple of standard implementations of this interface to help in testing, one of which is StaticResourceCalloutMock...