आवश्यक विधि है मॉकिटो # सत्यापित :
public static <T> T verify(T mock,
VerificationMode mode)
mock
आपकी मॉक ऑब्जेक्ट है और mode
यह VerificationMode
बताता है कि कैसे मॉक को सत्यापित किया जाना चाहिए। संभव तरीके हैं :
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");
विधि और इन सत्यापन विधियों Mockito
का उपयोग करने के लिए आपको कक्षा से इन स्थैतिक आयातों की आवश्यकता होगी 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;
तो आपके मामले में सही सिंटैक्स होगा:
Mockito.verify(mock, times(4)).send()
यह पुष्टि करता है कि विधि send
को मॉक किए गए ऑब्जेक्ट पर 4 बार कहा गया था । यह विफल हो जाएगा अगर इसे 4 बार से कम या अधिक कहा जाता था।
यदि आप केवल जांच करना चाहते हैं, यदि विधि को एक बार बुलाया गया है, तो आपको पास होने की आवश्यकता नहीं है VerificationMode
। एक सरल
verify(mock).someMethod("was called once");
पर्याप्त होगा। यह आंतरिक रूप से उपयोग करता है verify(mock, times(1)).someMethod("was called once");
।
"सत्यापन" सत्यापन को प्राप्त करने के लिए एक ही मॉक पर कई सत्यापन कॉल करना संभव है। मॉकिटो कुछ इस तरह का समर्थन नहीं करता है verify(mock, between(4,6)).someMethod("was called between 4 and 6 times");
, लेकिन हम लिख सकते हैं
verify(mock, atLeast(4)).someMethod("was called at least four times ...");
verify(mock, atMost(6)).someMethod("... and not more than six times");
इसके बजाय, एक ही व्यवहार पाने के लिए। सीमाएं शामिल हैं , इसलिए परीक्षण का मामला हरा है जब विधि को 4, 5 या 6 बार कहा गया था।
Mockito.verify(mock, times(4)).send()
। मुझे आश्चर्य है कि आपनेsend()
विधि को विधि के अंदर "स्थानांतरित" क्यों कियाverify
। आपके पास पहले से ही सही सिंटैक्स था।