Ответ 1
isA
проверяет, соответствует ли класс ожидаемому классу. В Mockito 1.x, any
, anyObject
и anyString
игнорировать аргумент целиком, включая его тип, даже если any
может принимать параметр класса, а anyString
указывает его в имени.
Как правило, если у вас нет причин для защиты от несовместимого аргумента, вы можете, вероятно, придерживаться any
и anyString
. Стиль Mockito предпочитает гибкие тестовые примеры, что означает проверку только тех вещей, которые вы явно проверяете, и преднамеренно позволяя всем остальным быть неуказанными.
ОБНОВЛЕНИЕ: Коммандер Mockito Brice предложил некоторый исторический фон и будущее направление:
Для исторической ссылки
any
является сокращенным псевдонимомanything
, в то время API заставлял его бросать, а участники и/или участники думали о передаче класса в качестве параметра, чтобы избежать этого приведения, без изменение семантики этого API. Однако это изменение в конечном итоге изменило то, что люди думали, что этот API работает. Это будет исправлено в mockito 2 +