title: InvalidUseOfMatchersException with mockito using matchers
body: <p>I am working with mockito and I am getting the next issue:</p>
  
  <pre><code>java.lang.AssertionError: 
  Expected: (an instance of java.lang.IllegalArgumentException and exception with message a string containing "")
       but: an instance of java.lang.IllegalArgumentException &lt;org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
  Invalid use of argument matchers!
  0 matchers expected, 1 recorded:
  -&gt; at com.rccl.middleware.kidsclub.engine.services.KidServiceTest.saveKid_kidExist_throwException(KidServiceTest.java:97)
  
  This exception may occur if matchers are combined with raw values:
      //incorrect:
      someMethod(anyObject(), "raw String");
  When using matchers, all arguments have to be provided by matchers.
  For example:
      //correct:
      someMethod(anyObject(), eq("String by matcher"));
  </code></pre>
  
  <p>This is my test code:</p>
  
  <pre><code>    @Mock
      private KidRepository kidRepository;
  
      @Mock
      private RoomService roomService;
  
      @Test
      public void saveKid_kidExist_throwException() {
          given(kidRepository.existsById(anyString())).willReturn(true);
          given(roomService.existShipRoomDefault()).willReturn(true);
  
          expectedException.expect(IllegalArgumentException.class);
          expectedException.expectMessage(startsWith("Kid already registered"));
          KidDTO kidDTO = MockDTO.buildKidDTO();
  
          service.saveKid(kidDTO);
  
          then(kidRepository).should().existsById(anyString());
      }
  </code></pre>
  
  <p>This is the code of the saveKid method which is sending exceptions basically:</p>
  
  <pre><code>       if (!validateShipRoomExist()) {
              log.warn("::: The ShipRoom document doesn't exist.");
              throw new RoomNotFoundException(NO_ROOMS_IN_DATABASE);
          }
  
          if (validateKidAlreadyRegistered(kidDTO.getId())) {
              log.warn("::: Trying to persist a Kid already persisted with ID [{}]", kidDTO.getId());
              throw new IllegalArgumentException(String.format("Kid already registered with ID [%s]", kidDTO.getId()));
          }
  </code></pre>
  
  <p>And these are the methods called:</p>
  
  <pre><code>        private boolean validateShipRoomExist() {
              return roomService.existShipRoomDefault();
          }
  
          public boolean validateKidAlreadyRegistered(@NotNull String kidId) {
              return kidRepository.existsById(kidId);
          }
  </code></pre>
  
  <p>The next is my code in the roomService:</p>
  
  <pre><code>public boolean existShipRoomDefault() {
          return roomRepository.existsById(DEFAULT_AGGREGATOR_ID);
   }
  </code></pre>
  
  <p>The problem is in this method which has the problem, even though I am using a string anyString() in this test. I don't understand what is happening in this case. an interesting think is that in debug mode the test doesn't fails if I have a breakpoint.</p>