Я пытаюсь убедиться, что (Doid) метод вызывается внутри DAO - я использую точку фиксации, которая отправляет список результатов до этой точки, сбрасывает список и продолжает. Скажем, у меня есть 4 вещи в списке, и у меня есть точка фиксации 1, я ожидаю, что метод "send" будет вызван 4 раза. Я могу проверить, что метод вызывается один раз, написав
Mockito.verify(mock).send()
это проходит .. но я хочу проверить, сколько раз он был вызван. Я думаю, что
Mockito.verify(mock.send(), times(4))
было бы достаточно, но он говорит, что параметры не верны для проверки.
Между прочим, если я перехожу Mockito.verify(mock).send()
на Mockito.verify(mock.send())
или Mockito.verify((mock).send())
я получаю ту же ошибку. Мысли об этом?
Mockito.verify(mock, times(4)).send()
. Интересно, почему вы «переместили»send()
вызов метода внутриverify
метода? У вас уже был правильный синтаксис.verify(mock, atLeastOnce()).send();
Mockito.verify(mock).send()
прошло, но просто его инкапсуляция вызвала ошибку, которая ничего не меняет. однако это победа!Ответы:
Необходимым методом является Mockito # verify :
mock
это ваш издевательский объект, иmode
это то,VerificationMode
что описывает, как проверять макет. Возможные режимы :Вам понадобятся эти статические импорты из
Mockito
класса, чтобы использоватьverify
метод и эти режимы проверки:Так что в вашем случае правильный синтаксис будет:
Это проверяет, что метод
send
был вызван 4 раза на объекте. Он потерпит неудачу, если он был вызван менее или более 4 раз.Если вы просто хотите проверить, был ли метод вызван один раз, вам не нужно передавать a
VerificationMode
. Простойбыло бы достаточно. Это внутренне использует
verify(mock, times(1)).someMethod("was called once");
.Можно выполнить несколько проверочных вызовов на одной и той же макете, чтобы добиться проверки «между». Mockito не поддерживает что-то подобное
verify(mock, between(4,6)).someMethod("was called between 4 and 6 times");
, но мы можем написатьвместо этого, чтобы получить то же самое поведение. Границы включены , поэтому контрольный пример имеет зеленый цвет, когда метод вызывается 4, 5 или 6 раз.
источник
VerificationMode
находятся методы (для статического импорта или явной ссылки), они находятся вorg.mockito.internal.verification.VerificationModeFactory
.verify(mock, atLeast(0)).someMethod("was called any number of times");
было полезно игнорировать подтверждение вызоваverify(between(m,n))
который проверяет количество звонков между m и n?verify
в раз сatLeast(M)
иatMost(n)
получить такое же поведение. Я отредактировал ответ объяснить это.VerificationModeFactory
. Это все еще доступно в самой новой версии, но я согласен, что внутренние классы не должны использоваться.