Необходимый метод: 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 раз.
Если вы просто хотите проверить, был ли метод вызван один раз, вам не нужно передавать 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 раз.
person
Tom
schedule
05.01.2015
send()
внутрь методаverify
. У вас уже был правильный синтаксис. - person Tom   schedule 05.01.2015verify(mock, atLeastOnce()).send();
- person Dawood ibn Kareem   schedule 05.01.2015Mockito.verify(mock).send()
прошел, но простая инкапсуляция вызвала ошибку, которая ничего не меняет. однако это победа! - person nbpeth   schedule 05.01.2015