Gerekli yöntem Mockito # doğrulamaktır :
public static <T> T verify(T mock,
VerificationMode mode)
mock
senin alay nesnedir ve mode
bir VerificationMode
sahte doğrulanması gerekir açıklamaktadır söyledi. Olası modlar :
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"); // useful with captors
verify(mock, only()).someMethod("no other method has been called on the mock");
Yöntemi ve bu doğrulama modlarını Mockito
kullanmak için sınıftan bu statik içe aktarmalara ihtiyacınız olacaktır verify
:
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;
Yani sizin durumunuzda doğru sözdizimi:
Mockito.verify(mock, times(4)).send()
Bu, yöntemin sahte nesnede 4 kez send
çağrıldığını doğrular . 4 kereden az veya daha fazla çağrılırsa başarısız olacaktır.
Sadece kontrol etmek istiyorsanız, yöntem bir kez çağrıldıysa, bir geçmeniz gerekmez VerificationMode
. Basit
verify(mock).someMethod("was called once");
Yeterli olacaktır. Dahili olarak kullanır verify(mock, times(1)).someMethod("was called once");
.
Bir "arasında" doğrulaması elde etmek için aynı modelde birden fazla doğrulama çağrısına sahip olmak mümkündür. Mockito böyle bir şeyi desteklemiyor verify(mock, between(4,6)).someMethod("was called between 4 and 6 times");
, ancak yazabiliyoruz
verify(mock, atLeast(4)).someMethod("was called at least four times ...");
verify(mock, atMost(6)).someMethod("... and not more than six times");
bunun yerine, aynı davranışı elde etmek için. Sınırlar dahil edilmiştir , bu nedenle yöntem 4, 5 veya 6 kez çağrıldığında test durumu yeşildir.
Mockito.verify(mock, times(4)).send()
. Nedensend()
yöntem içinde yöntem çağrısı "taşındı" merak ediyorumverify
. Zaten doğru sözdizimine sahiptiniz.