Its better to test for a more "meaningful" outcome.

Really, what we care about here is that call to` messageGateway.send(..)` was made with properly formed `HtmlEmail` obj.

In the future someone may introduce a new code to this method that causes the incorrect email template to be generated; but we'd never know since as long as recipients > 0 and no exceptions are thrown, this will return true - when really those are the least important things about this method.

You could have a test like this to prove that when 0 recipients or an exception is thrown, the method returns false, and > 0 and no exceptions, returns true -- since thats really what true/false is measuring in your method.