के बाद कुछ भी नहीं कहा जाता है, मैं जावा में यूनिट परीक्षण लिखने के लिए मॉकिटो का उपयोग कर रहा हूं, और मैं यह सत्यापित करना चाहता हूं कि एक निश्चित विधि एक ऑब्जेक्ट पर कॉल की गई एक है।यह सत्यापित करने के लिए मॉकिटो का उपयोग करें कि विधि
मैं परीक्षण के अंतर्गत कोड में कुछ इस तरह कर रहा हूँ:
row.setSomething(value);
row.setSomethingElse(anotherValue);
row.editABunchMoreStuff();
row.saveToDatabase();
मेरी नकली में, मैं जिस क्रम में मैं पंक्ति पर सब कुछ संपादित के बारे में परवाह नहीं है, लेकिन यह है कि बहुत महत्वपूर्ण है I इसे सहेजने के बाद इसे और कुछ करने का प्रयास करें। क्या ऐसा करने का कोई अच्छा तरीका है?
ध्यान दें कि मैं सत्यापित नहीं कर रहा हूं NoMoreInteractions: यह पुष्टि नहीं करता है कि saveToDatabase को आखिरी चीज़ कहा जाता है, और यह भी विफल रहता है अगर मैं उस पंक्ति पर कुछ भी कहता हूं जिसे मैं स्पष्ट रूप से सत्यापित नहीं करता हूं। इसे और अधिक कस्टम की आवश्यकता है
row.expects(once()).method("saveToDatabase").id("save");
row.expects(never()).method(ANYTHING).after("save");
एक नोट: हम अंत में इस पुनर्संशोधित आदेश निर्भरता से बचने के लिए। विशेष रूप से, हमने saveToDatabase() भाग को कोड की बाहरी परत में ले जाया, जहां इसे सही समय पर स्वचालित रूप से कॉल किया जाएगा। आम तौर पर, यदि आपको किसी नकली के साथ ऐसा कुछ करने की ज़रूरत है, तो आपके परीक्षण आपको रिफैक्टर करने के लिए कह रहे हैं। उस ने कहा, अभी भी एक परीक्षण करना अच्छा है जो डिजाइन तब तक काम कर सकता है जब तक कि डिज़ाइन बदल नहीं जाता है। –