विधि का सत्यापन कैसे किया जाता है इसे मॉकिटो सत्यापन () के साथ दो बार कहा जाता है


307

मैं यह सत्यापित करना चाहता हूं कि क्या मॉकिटो वेरिफिकेशन के माध्यम से कम से कम एक बार विधि को बुलाया जाए। मैंने सत्यापन किया और यह इस तरह से शिकायत करता है:

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

जवाबों:


519

उपयुक्त सत्यापन विधि का उपयोग करना:

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
आप स्थैतिक आयात Mockito.times(...)के VerificationModeFactory.times(...)लिए भी उपयोग कर सकते हैं
विम देबलॉवे

26
import static org.mockito.Mockito.times;। आम तौर पर उन में "आंतरिक" के साथ पैकेज आयात करना ( import static org.mockito.internal.verification.VerificationModeFactory.times;) हतोत्साहित किया जाता है।
रोजर

क्या लेखन समय (1) का एक और तरीका है?
ग्लेन बेच

1
@ ग्लेनचेक आप इसे छोड़ सकते हैं , यह निहित है; डिफ़ॉल्ट verify(mockObject).someMethod("")वास्तव में 1 इंटरैक्शन के लिए दिखता है (अधिक नहीं, कम नहीं)। यदि, इसके बजाय, आप विधि का कम से कम एक मंगलाचरण चाहते हैं , तो आप atLeastOnce()विनिर्देशक का उपयोग कर सकते हैं ।
21

1
@Roger मैं आपके साथ सहमत हूं, मेरी तरह एक शुरुआत TDD अभ्यासकर्ता के लिए, स्थैतिक आयात मुझे उन तरीकों को याद करने के बारे में अधिक भ्रमित करता है या जो रूपरेखा का उपयोग कर रहा है (मॉकिटो, एस्प्रेसो, या सिर्फ सामान्य इकाई परीक्षण)।
दो बार सोचो कोड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.