title: Mockito's Argument Captor Behavior
body: <p>I am facing with issue where I need to track invocation of some method but only with specified argument parameter. See issue below</p>
  
  <pre><code>@Test
  public void simpleTest() {
      ArgumentCaptor&lt;Pear&gt; captor = ArgumentCaptor.forClass(Pear.class);
      Action action = mock(Action.class);
      action.perform(new Pear());
      action.perform(new Apple());
      verify(action, times(1)).perform(captor.capture());
  }
  
  static class Action {
  
      public void perform(IFruit fruit) {}
  
  }
  static class Pear implements IFruit {}
  static class Apple implements IFruit {}
  
  interface IFruit {}
  </code></pre>
  
  <p>But getting :</p>
  
  <pre><code>org.mockito.exceptions.verification.TooManyActualInvocations: 
  action.perform(&lt;Capturing argument&gt;);
  Wanted 1 time:
  But was 2 times. Undesired invocation:
  ..
  </code></pre>
  
  <p>What I am doing wrong? Mockito v 1.10</p>
  
  <p>To be honest it is just for example and my code more complicated and I don't know, how many times perform will be invoked with Apple.class. It doesn't matter for me. I need to verify only call of perform(Pear.class)</p>
  
  <p><strong>UPD:</strong>
  I need to verify that method with Pear.class was called once. Lets imagine that Action is Transaction and perform is save(DomainObject). So I need to be sure that save(MyDomainObject) was called once, but no matter how many Objects were saved before. This action is atomic for Test and I can't reset mock between these operations</p>