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.