2015-08-21 2 views
2

Я получаю следующее сообщение об ошибке в моем тесте:Почему я получаю InvalidUseOfMatchersException здесь?

junit.framework.AssertionFailedError: Exception occured : 
     org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
     Invalid use of argument matchers! 
     2 matchers expected, 1 recorded: 

Это мой кусок кода:

Mockito.when(mockHelloPeristenceImpl.retrieveHellorequest(Mockito.anyLong())) 
       .thenReturn(Mockito.any(Hellorequest.class)); 

Я попробовал все вариант, предложенный в интернете для этого вопроса, ничего не получалось. Что не так?

ответ

2

Вы не можете вернуть Matcher так, как вы это делаете. Вы должны указать фактический объект, который вы возвращаете. Либо сделайте что-нибудь вроде:

Mockito.when(mockHelloPeristenceImpl.retrieveHellorequest(Mockito.anyLong())) 
     .thenReturn(Mockito.mock(Hellorequest.class)); 

Или, дайте ему ответную реакцию, например.

Mockito.when(mockHelloPeristenceImpl.retrieveHellorequest(Mockito.anyLong())) 
     .then(Mockito.RETURNS_MOCKS); 

Как и в сторону, ваш код может быть намного короче, используя:

import static org.mockito.Mockito.*; 

Тогда ваш тест заявление будет просто:

when(mockHelloPeristenceImpl.retrieveHellorequest(anyLong())) 
      .then(RETURNS_MOCKS); 
Смежные вопросы