2016-09-15 7 views
-2
public interface ABC { 
     public boolean removeUser(String userId) throws OTPServiceException, RemoteException; 
} 

ABC abc= mock(ABC.class); 
doNothing().when(abc).removeUser(anyString()); 

Я пробовал вот так. Я получил меньше исключения.Исключение исключений для Mockito

org.mockito.exceptions.base.MockitoException: 
Only void methods can doNothing()! 
Example of correct use of doNothing(): 
    doNothing(). 
    doThrow(new RuntimeException()) 
    .when(mock).someVoidMethod(); 
Above means: 
someVoidMethod() does nothing the 1st time but throws an exception the 2nd time is called 
+0

И что вас беспокоит? – talex

+0

не могли бы вы объяснить, в чем ваш вопрос? –

+0

Он спрашивает вас, каков ваш вопрос. Сообщение очень ясно: «Только пустотные методы могут делатьNothing()!» Итак, вы google это сообщение и исправить свою проблему ?! – GhostCat

ответ

4

Вы возвращаете метод boolean, поэтому вы должны высмеивать логический ответ.

Вы должны иметь что-то вроде этого:

when(abc.removeUser(anyString())).thenReturn(true); 

Вы можете проверить Usages of doThrow() doAnswer() doNothing() and doReturn() in mockito для более подробных и простых объяснений.

+0

Отредактирован ответ, чтобы сделать все правильно. Я звонил thenReturn on removeUser (anyString()), и он должен быть вызван на результат метода when (...). – djointster

1

Вы не doNothing для не void методов может потому, что вам нужно либо вернуть что-то или бросить исключение.

when(abc.removeUser(anyString())).thenReturn(true); 

when(abc.removeUser(anyString())).thenThrow(RuntimeException.class); 
Смежные вопросы