title: Mockito @InjectMocks doesn't work for fields with same type
body: <p>I was very surprised to find out that following simple code example doesn't work for all Mockito versions > 1.8.5</p>
  
  <pre><code>@RunWith(MockitoJUnitRunner.class)
  public class MockitoTest {
  
      @Mock(name = "b2")
      private B b2;
  
      @InjectMocks
      private A a;
  
      @Test
      public void testInjection() throws Exception {
          assertNotNull(a.b2); //fails
          assertNull(a.b1); //also fails, because unexpectedly b2 mock gets injected here
      }
  
      static class A{
          private B b1;
          private B b2;
      }
  
      interface B{}
  }
  </code></pre>
  
  <p>In javadocs (<a href="http://docs.mockito.googlecode.com/hg/latest/org/mockito/InjectMocks.html" rel="noreferrer">http://docs.mockito.googlecode.com/hg/latest/org/mockito/InjectMocks.html</a>) there is a quote: </p>
  
  <blockquote>
    <p>Note 1: If you have fields with the same type (or same erasure), it's
    better to name all @Mock annotated fields with the matching fields,
    otherwise Mockito might get confused and injection won't happen.</p>
  </blockquote>
  
  <p>Does it mean that if I have several fields with same type I can't mock ONLY ONE of them but rather should define <code>@Mock</code> for <strong>ALL</strong> fields with same type? 
  Is it known limitation and is there any reason why it wasn't fixed yet?
  It should be straightforward to match <code>@Mock</code> by fields names, isn't it?</p>