Необходимым методом является Mockito # verify :
public static <T> T verify(T mock,
VerificationMode mode)
mock
это ваш издевательский объект, и mode
это то, VerificationMode
что описывает, как проверять макет. Возможные режимы :
verify(mock, times(5)).someMethod("was called five times");
verify(mock, never()).someMethod("was never called");
verify(mock, atLeastOnce()).someMethod("was called at least once");
verify(mock, atLeast(2)).someMethod("was called at least twice");
verify(mock, atMost(3)).someMethod("was called at most 3 times");
verify(mock, atLeast(0)).someMethod("was called any number of times"); // useful with captors
verify(mock, only()).someMethod("no other method has been called on the mock");
Вам понадобятся эти статические импорты из Mockito
класса, чтобы использовать verify
метод и эти режимы проверки:
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.atMost;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.only;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
Так что в вашем случае правильный синтаксис будет:
Mockito.verify(mock, times(4)).send()
Это проверяет, что метод send
был вызван 4 раза на объекте. Он потерпит неудачу, если он был вызван менее или более 4 раз.
Если вы просто хотите проверить, был ли метод вызван один раз, вам не нужно передавать a VerificationMode
. Простой
verify(mock).someMethod("was called once");
было бы достаточно. Это внутренне использует verify(mock, times(1)).someMethod("was called once");
.
Можно выполнить несколько проверочных вызовов на одной и той же макете, чтобы добиться проверки «между». Mockito не поддерживает что-то подобное verify(mock, between(4,6)).someMethod("was called between 4 and 6 times");
, но мы можем написать
verify(mock, atLeast(4)).someMethod("was called at least four times ...");
verify(mock, atMost(6)).someMethod("... and not more than six times");
вместо этого, чтобы получить то же самое поведение. Границы включены , поэтому контрольный пример имеет зеленый цвет, когда метод вызывается 4, 5 или 6 раз.
Mockito.verify(mock, times(4)).send()
. Интересно, почему вы «переместили»send()
вызов метода внутриverify
метода? У вас уже был правильный синтаксис.