Stubbing void methods
In this recipe, we will stub a void method. A void method is one that doesn't return a value. Remember that since we want to partially stub a mock, it most likely means that our class is doing too much, and that is quite true for this scenario. It is best practice to not write such code – always try to follow the SOLID principles.
Getting ready
For this recipe, our system under test will be the PersonDataUpdator
class, which delegates most of the work to its collaborator, TaxFactorService
. The latter calculates the mean value of the tax factor (for simplicity, it's a fixed value) and then updates the person's tax data via a web service (since it's a simple example, we do not have any real web service calls):
public class PersonDataUpdator { private final TaxFactorService taxFactorService; public PersonDataUpdator(TaxFactorService taxFactorService) { this.taxFactorService = taxFactorService; } public boolean processTaxDataFor(Person person) { try { ...