InvalidUseOfMatchersException: недопустимое использование сопоставителей аргументов - PullRequest
0 голосов
/ 28 апреля 2018

Я новичок в тестировании. Я пробовал это, но получил исключение.

@Mock
private Context context;    
...
when(service.getResult(any(), context)).thenReturn(new ArrayList<>());

Исключение:

org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Неправильное использование сопоставителей аргументов!
Ожидается 2 матча, 1 записано:

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Подобный вопрос задавался много раз. Я думаю, что лучший ответ здесь:

Mockito требует, чтобы вы использовали либо необработанные значения, либо только сопоставления при заглушке вызова метода. Полное исключение (не опубликованное вами здесь) наверняка объясняет все.

Неправильное использование сопоставителей аргументов

0 голосов
/ 28 апреля 2018

Mockito.any() - сопоставитель аргументов Mockito. Поскольку вы указываете его в одном из параметров, определенных в фиктивной записи, вы должны использовать аргумент matcher для всех параметров.
Mockito.eq(T) - это способ преобразования любого параметра в сопоставитель аргументов.
Так что это должно быть хорошо:

@Mock
private Context context;    

@Mock
private Service service; 
...
when(service.getResult(any(), eq(context)).thenReturn(new ArrayList<>());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...