2016-04-21 3 views
1

Мой класс getUserDetails принимает пользователя (класс custome) и строку в качестве аргументов и возвращает пользователя. Если я использую Mockito согласовани, как показано ниже:mockito throwing InvalidUseOfMatchersException

when(authService.getUserDetails(any(User.class),anyString())).thenReturn(any(User.class)); 

Это дает мне InvalidUseOfMatchersException 2 matchers ожидается, 3 найдено. Не могу ли я использовать вышеуказанное выражение?

ответ

2

Соединители не используются для возвращения.

.thenReturn(any(User.class)); 

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

1

Вы должны передать экземпляр User в thenReturn, а не подшивку. Этот экземпляр User будет возвращен при вызове authService.getUserDetails.

0

Этот код будет работать:

User user=new User(); 
    when(authService.getUserDetails(any(User.class),anyString())).thenReturn(user)); 

Как должно быть значение, а не вводить в thenReturns()

Смежные вопросы