 <p>The other service is not really a business service in this case. Its only responsibility is to find the objects from the given ID, and apply the given action on these objects. Functionally, this is equivalent to the following code:</p> <pre><code>Set&lt;Object&gt; objects = otherService.getObjectsWithId(id); for (Object o : objects) { doTheHardBusinessStuffWith(o); } </code></pre> <p>Make <code>doTheHardBusinessStuffWith</code> protected. Create a unit test for this method. This is the most important unit test: the one that tests the business logic.</p> <p>If you really want to unit-test <code>myBusinessStuffFor</code>, what you could do is create a mock OtherService (and I mean implement this mock youself, here), that is built from a Set of objects, and applies its given action to all the objects in the set. Create a partial mock of <code>MyService</code> where the <code>doTheHardBusinessStuffWith</code> method is mocked, and which is injected with you mock OtherService. Call <code>myBusinessStuffFor</code> on the partial mock, and verify that <code>doTheHardBusinessStuffWith</code> has been called with every object of the set of objects.</p>