Сопряжения аргументов Mockito (такие как any
, argThat
, eq
, same
и ArgumentCaptor.capture()
) ведут себя очень по-другому от совпадений Hamcrest.
-
Соединители Mockito часто вызывают InvalidUseOfMatchersException, даже в коде, который выполняется задолго до того, как были использованы какие-либо матчи.
-
Соединители Mockito привязаны к странным правилам, например, только требуя использования сокетов Mockito для всех аргументов, если один аргумент в данном методе использует совпадение.
-
Соединители Mockito могут вызывать исключение NullPointerException при переопределении
Answer
или при использовании(Integer) any()
и т.д. -
Рефакторинг кода с макетами Mockito определенными способами может приводить к исключениям и неожиданному поведению и может полностью завершиться.
Почему такие макеты Mockito созданы так и как они реализованы?