InvalidUseOfMatchersException при использовании Matchers.eq () с другими ложными значениями - PullRequest
1 голос
/ 08 января 2020

В моем классе JUnit у меня есть следующий код:

@Mock
private HttpServletRequest servletRequest;

@Mock
WidgetHelper widgetHelper;

@Mock
JSONObject jsonObject;

@Mock
Date date;

verify(widgetHelper, times(1)).invokeAuditService(servletRequest, date, anyString(), 
                        Matchers.eq("Member_Servicing_Email_Update"), jsonObject, anyString());

Я получаю следующий вывод:

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"));

То, чего я хочу достичь, это: я хочу проверить, содержит ли 4-й аргумент метода строку "Member_Servicing_Email_Update" или нет. Остальные аргументы можно высмеять. Я использовал Matchers.anyObject() для других, и я получил сообщение об ошибке cannot match anyObject to java.lang.String, Date, HttpServlet и так далее. Что нужно сделать здесь? Я также просто поставил eq("Member_Servicing_Email_Update"), но eq не был распознан.

1 Ответ

0 голосов
/ 08 января 2020

Добавить Matchers.eq для всех необработанных параметров:

verify(widgetHelper, times(1)).invokeAuditService(Matchers.eq(servletRequest), Matchers.eq(date), anyString(), 
                Matchers.eq("Member_Servicing_Email_Update"), Matchers.eq(jsonObject), anyString());

При использовании сопоставителей все аргументы должны предоставляться сопоставителями

...