Як перевірити метод, викликається два рази за допомогою mockito verify ()


307

Я хочу перевірити, чи викликається метод хоча б один раз через mockito verify. Я використав верифікацію, і вона скаржиться так:

org.mockito.exceptions.verification.TooManyActualInvocations: 
Wanted 1 time:
But was 2 times. Undesired invocation:

Відповіді:


519

Використання відповідного VerificationMode:

import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

verify(mockObject, atLeast(2)).someMethod("was called at least twice");
verify(mockObject, times(3)).someMethod("was called exactly three times");

22
Ви також можете використовувати Mockito.times(...)замість VerificationModeFactory.times(...)статичного імпорту
Вім Деблауве

26
import static org.mockito.Mockito.times;. Як правило, імпорт пакетів з "внутрішнім" в них ( import static org.mockito.internal.verification.VerificationModeFactory.times;) не рекомендується.
Роджер

чи є інший спосіб написання разів (1)?
Glenn Bech

1
@GlennBech Ви можете просто пропустити це , це неявно; за замовчуванням verify(mockObject).someMethod("")шукається рівно 1 взаємодія (не більше, не менше). Якщо замість цього вам потрібно хоча б одне виклик методу, ви можете використовувати atLeastOnce()специфікатор.
nbrooks

1
@Roger Я згоден з вами: для початківця практикуючого TDD, як я, статичний імпорт змушує мене більше заплутатися у запам’ятовуванні методів чи використовуваних рамок (Mockito, Espresso або просто звичайний тестовий модуль).
Подумайте двічі коду одного разу
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.