In the following recipe, we will learn how to create a spy using Mockito code only (without annotations). As a reminder, you should have very legitimate reasons to use a spy in your code, otherwise it most likely signifies that there is something wrong with your code's design.
Our system under test for this recipe will be
TaxFactorProcessor, which interacts with
TaxService. Let's assume that the latter is part of some legacy system that, for the time being, you don't want to refactor. Also assume that
TaxService does two things. First, it performs calculations of a tax factor, and second it sends a request via a web service to update tax data for a given person. If the person's country is not specified explicitly ...