Quando costruisci un test unitario, è appropriato usare uno strumento di simulazione per aiutarti a configurare un oggetto anche se non stai prendendo in giro alcun comportamento o verificando alcuna interazione con quell'oggetto?
Ecco un semplice esempio in pseudo-codice:
//an object we actually want to mock
Object someMockedObject = new Mock(Object.class);
EqualityChecker checker = new EqualityChecker(someMockedObject);
//an object we are stubbing/mocking only to avoid figuring out how to instantiate or
//tying ourselves to some constructor that may be removed in the future
ComplicatedObject someObjectThatIsHardToInstantiate = new Mock(ComplicatedObject.class);
//set the expectation on the mock
When(someMockedObject).equals(someObjectThatIsHardToInstantiate).return(false);
Assert(equalityChecker.check(someObjectThatIsHardToInstantiate)).isFalse();
//verify that the mock was interacted with properly
Verify(someMockedObject).equals(someObjectThatIsHardToInstantiate).oneTime();
È appropriato prendere in giro ComplicatedObject in questo scenario?