Mockito verify () ile bir yöntemin iki kez çağrılması


307

Bir yöntemin mockito doğrulaması yoluyla en az bir kez çağrılıp çağrılmadığını doğrulamak istiyorum. Doğrulama kullandım ve şöyle şikayet ediyor:

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

Yanıtlar:


519

Uygun Doğrulama Modunu kullanarak:

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
Statik içe aktarma Mockito.times(...)yerine de kullanabilirsinizVerificationModeFactory.times(...)
— Wim Deblauwe

26
import static org.mockito.Mockito.times;. Genellikle içinde "dahili" olan paketleri içe aktarmak ( import static org.mockito.internal.verification.VerificationModeFactory.times;) önerilmez.
— Roger

(1) yazmanın başka bir yolu var mı?
— Glenn Bech

1
@GlennBech Bunu atlayabilirsiniz , bu örtüktür ; varsayılan değer verify(mockObject).someMethod("")tam olarak 1 etkileşim arar (daha fazla, daha az değil). Bunun yerine, yöntemin en az bir çağrılmasını istiyorsanız, atLeastOnce()belirteci kullanabilirsiniz .
— nbrooks

1
@Roger Sizinle aynı fikirdeyim, benim gibi yeni bir TDD uygulayıcısı için, statik içe aktarma yöntemleri veya hangi çerçevenin kullanıldığını hatırlamamı daha fazla karıştırıyor (Mockito, Espresso veya sadece normal birim testi).
— İki Kez Kodunu
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.