Metode yang diperlukan adalah Mockito # verifikasi :
public static <T> T verify(T mock,
VerificationMode mode)
mock
adalah objek Anda mengejek dan mode
adalah VerificationMode
yang menggambarkan bagaimana mock harus diverifikasi. Mode yang memungkinkan adalah :
verify(mock, times(5)).someMethod("was called five times");
verify(mock, never()).someMethod("was never called");
verify(mock, atLeastOnce()).someMethod("was called at least once");
verify(mock, atLeast(2)).someMethod("was called at least twice");
verify(mock, atMost(3)).someMethod("was called at most 3 times");
verify(mock, atLeast(0)).someMethod("was called any number of times");
verify(mock, only()).someMethod("no other method has been called on the mock");
Anda memerlukan impor statis ini dari Mockito
kelas untuk menggunakan verify
metode dan mode verifikasi berikut:
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.atMost;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.only;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
Jadi dalam kasus Anda sintaks yang benar adalah:
Mockito.verify(mock, times(4)).send()
Ini memverifikasi bahwa metode send
tersebut dipanggil 4 kali pada objek yang diolok-olok. Ini akan gagal jika dipanggil kurang atau lebih dari 4 kali.
Jika Anda hanya ingin memeriksa, jika metode tersebut telah dipanggil sekali, maka Anda tidak perlu meneruskan a VerificationMode
. Sederhana
verify(mock).someMethod("was called once");
akan cukup. Ini digunakan secara internal verify(mock, times(1)).someMethod("was called once");
.
Dimungkinkan untuk memiliki beberapa panggilan verifikasi pada tiruan yang sama untuk mencapai verifikasi "antara". Mockito tidak mendukung hal seperti ini verify(mock, between(4,6)).someMethod("was called between 4 and 6 times");
, tetapi kami dapat menulis
verify(mock, atLeast(4)).someMethod("was called at least four times ...");
verify(mock, atMost(6)).someMethod("... and not more than six times");
sebaliknya, untuk mendapatkan perilaku yang sama. Batasannya disertakan , sehingga kasus uji berwarna hijau ketika metode tersebut dipanggil 4, 5 atau 6 kali.
Mockito.verify(mock, times(4)).send()
. Saya bertanya-tanya mengapa Anda "memindahkan"send()
pemanggilan metode di dalamverify
metode. Anda sudah memiliki sintaks yang benar.