Stubbing void methods so that they call real methods
In this recipe, we will stub a method that is a void method. It doesn't return a value, so it calls a real method. This way, we will construct a partial mock (to read more about partial mocking, please refer to Chapter 2, Creating Mocks).
Getting ready
For this recipe, our system under test will be the same class as in the previous recipe, but let's take another look at it so that you don't need to scroll around to see the source code. The PersonProcessor
class, for simplicity, does only one thing: it delegates the process of saving person
to the PersonSaver
class. As shown in the following code, in case of success, true is returned; otherwise, false is returned:
public class PersonProcessor { private final PersonSaver personSaver; public PersonProcessor(PersonSaver personSaver) { this.personSaver = personSaver; } public boolean process(Person person) { try { personSaver.savePerson(person); ...