Cara memverifikasi suatu metode disebut dua kali dengan mockito memverifikasi ()

307

Saya ingin memverifikasi apakah suatu metode dipanggil setidaknya sekali melalui verifikasi mockito. Saya menggunakan verifikasi dan mengeluh seperti ini:

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

Jawaban:

519

Menggunakan VerificationMode yang sesuai:

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");
Liosan
sumber
22
Anda juga dapat menggunakan Mockito.times(...)alih-alih VerificationModeFactory.times(...)untuk impor statis
Wim Deblauwe
26
import static org.mockito.Mockito.times;. Umumnya mengimpor paket dengan "internal" di dalamnya ( import static org.mockito.internal.verification.VerificationModeFactory.times;) tidak disarankan.
Roger
adakah cara lain untuk menulis kali (1)?
Glenn Bech
1
@ GlennBech Anda bisa menghilangkan itu , itu tersirat; default verify(mockObject).someMethod("")mencari persis 1 interaksi (tidak lebih, tidak kurang). Sebaliknya, jika Anda menginginkan setidaknya satu doa metode, Anda bisa menggunakan atLeastOnce()specifier.
nbrooks
1
@Roger Saya setuju dengan Anda, untuk praktisi TDD awal seperti saya, impor statis membuat saya lebih bingung mengingat metode atau kerangka yang digunakan (Mockito, Espresso, atau hanya unit test normal).
Pikirkan Kode Dua Kali Sekali