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:

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");

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.