Injecting test doubles instead of beans using Spring's code configuration
In this recipe, we will replace an existing bean with a test double using Spring's code configuration.
Getting ready
Let's assume that our system under test is the tax transferring system for a given person, as shown in the following code:
public class TaxTransferer { private final TaxService taxService; public TaxTransferer(TaxService taxService) { this.taxService = taxService; } public boolean transferTaxFor(Person person) { if (person == null) { return false; } taxService.transferTaxFor(person); return true; } }
Where
TaxService
is a class that makes the web service call, as shown in the following code (for simplicity, we are only writing that we are performing such data exchange):
class TaxService { public void transferTaxFor(Person person) { System.out.printf("Calling external web service for person with name [%s]%n", person.getName...