Mockito.when(foo.getBar()).thenReturn(baz)
और Mockito.verify(foo).getBar()
पर कॉल करने का प्रयास करें, जो स्थिर आयात पर भरोसा नहीं करेगा। @Mock
एनोटेशन के विपरीत, जो तकनीकी रूप से एक वर्ग है, when
और verify
मॉकिटो क्लास पर स्थिर तरीके हैं।
एक बार जब आप काम कर रहे है कि है, तो जो डेविड alluded को स्थिर आयात का प्रयास करें:
import static org.mockito.Mockito.when; // ...or...
import static org.mockito.Mockito.*; // ...with the caveat noted below.
यह तो आप Mockito
वर्ग निर्दिष्ट किए बिना Mockito.when
उपयोग करने के लिए अनुमति देगा। आप एक वाइल्डकार्ड का भी उपयोग कर सकते हैं, लेकिन प्रति this SO answerJava docs वाइल्डकार्ड का उपयोग करने की अनुशंसा करते हैं - विशेष रूप से जब यह समान रूप से नामित स्थैतिक विधि को बाद में मॉकिटो में जोड़ा जाता है तो यह तोड़ सकता है।
import org.mockito.*;
जोड़ना अपर्याप्त है क्योंकि org.mockito
पैकेज में सभी वर्गों को जोड़ता है, लेकिन org.mockito.Mockito
पर विधियों को नहीं जोड़ता है।
विशेष रूप से ग्रहण के लिए, आप कर्सर को when
Mockito.when
के हिस्से पर डालकर और नियंत्रण-शिफ्ट-एम ("आयात जोड़ें") दबाकर एक स्थिर आयात जोड़ सकते हैं। आप अपने पसंदीदा (विंडो> वरीयताएँ> जावा> संपादक> सामग्री सहायक> पसंदीदा> नए प्रकार) में org.mockito.Mockito
भी जोड़ सकते हैं ताकि सभी मॉकिटो स्थैतिक विधियां आपके Ctrl-Space सामग्री सहायता प्रॉम्प्ट में दिखाई दें, भले ही आपने उन्हें विशेष रूप से आयात नहीं किया हो । (आप org.mockito.Matchers के लिए भी ऐसा करना चाह सकते हैं, जो तकनीकी रूप से org.mockito.Mockito पर विरासत के माध्यम से उपलब्ध हैं, लेकिन उस कारण से ग्रहण में दिखाई नहीं दे सकते हैं।)
स्रोत
2012-12-31 01:19:32
क्या आपने सही स्थिर आयात शामिल किए हैं ? –
वे क्या हैं? –
आयात स्थिर org.mockito.Mockito। *; –