Mockito.verify выборочный метод вызова
В моем приложении у меня есть код, который выглядит как -
request.setParameter("a",false);//line1
request.setParameter("b",someObject);//line2
request.setParameter("c",someObject);//line3
request.setParameter("d",someObject);//line4
Я смоделировал объект запроса, и теперь я хочу проверить, была ли вызвана line3 или нет. Меня не волнуют другие строки, в тестовом классе я пробовал Mockito.verify(request).setParameter("c",someObject)
Однако я получаю ошибку -
Argument(s) are different! Wanted:
request.setParameter("c",com.test.MyObject@fec107);
-> at XXX
Actual invocation has different arguments:
request.setParameter("a", false);
По какой-то причине Mockito сравнивает первый вызов и выдает ошибку
1 ответ
Решение
Mockito сделает это только в том случае, если проверяемый вами вызов на самом деле НЕ произошел. Так что если request.setParameter("c", someObject)
был вызван, ваш тест будет проходить независимо от других вызовов. Если verify
Не удается, Mockito пытается помочь, идентифицируя вызовы, которые были "почти пропущены" тому, который вы пытались проверить; но только если verify
выходит из строя.