Friday, March 19, 2010
Mockito's @InjectMocks annotation does reflection-based DI
I've been using @InjectMocks heavily lately since it came out in version 1.8.3 of mockito. The javadocs for this annotation state that it uses setter injection to inject its dependencies. Being a lazy developer, I was writing a unit test yesterday at work and forgot to write the setter methods for a couple of dependencies on the SUT that I was testing. Lo and behold, the test passed and all mock verifications were satisfied. Very confused, I went back to some other unit tests and their SUTs and removed the setter methods. In all of my cases, the tests continued to pass. A quick note to the mockito list confirms what I discovered--@InjectMocks actually is using a reflection-based DI scheme, not unlike what Spring does when you annotate collaborator fields in a Spring bean with @Autowired and @Resource. Very cool feature, as this further reduces code noise. Here is the discussion on Google Groups.
Subscribe to:
Post Comments (Atom)
Good post,Thank you.
ReplyDeleteVisit Best Astrologer in Suryapet
Your information related to Astrologer is really very useful for me ....Thanks for sharing this informative
ReplyDeleteFor better sofa renovation contact thesofastore gives best
Best Sofa Repair Services in Kundalahalli