2015-05-11 8 views
5

मुझे पता है कि आप केवल शून्य विधियों को सत्यापित कर सकते हैं। लेकिन मैं वास्तव में खुद से क्यों पूछता हूं। मॉकिटो: एक बूलियन विधि (या अन्य प्रकार) सत्यापित करें

मैंने हाल ही में एक यूनिट परीक्षण पर ठोकर खाई जहां मुझे वास्तव में यह सत्यापित करने की आवश्यकता है कि एक निश्चित कॉल किया गया है। सटीक होने के लिए, यह "newFolder.mkdirs()" है। इस विधि का व्यवहार मेरी राय में काफी "शून्य" है। लेकिन एक "फीचर" के रूप में देवों ने इस कार्य को एक बुलियन रिटर्न प्रकार प्रदान किया ताकि यह देखने के लिए कि कार्रवाई सफल हुई थी या नहीं।

अच्छा, लेकिन मुझे इसके परीक्षण में इसके लिए बहुत अधिक परवाह नहीं है जहां मैंने अपने मैक्स को चारों ओर फेंक दिया। मैं बस यह सुनिश्चित करना चाहता हूं कि यह कॉल किया गया था, जैसे कि मैं यह सुनिश्चित करना चाहता हूं कि महत्वपूर्ण शून्य कॉल किए गए हों।

तो क्या ऐसा करने की संभावना है? मैं इस पर काफी अटक गया हूं, उस छोटी सी समस्या के लिए एक कामकाज की कल्पना भी नहीं कर सकता:/किसी को अच्छा, छोटा विचार मिला?


मैं पूरी तरह से गलत था: आप सब कुछ सत्यापित कर सकते हैं। मैंने ब्रैकेट को गलत स्थान दिया।

मैं था:

verify(newFolder.mkdirs()); 

मैं की जरूरत:

verify(newFolder).mkdirs(); 

बेवकूफ मुझे;)

+0

मुझे यकीन है कि क्या जिस समस्या का सामना कर रहे हैं नहीं कर रहा हूँ? आपका मतलब है कि आप कुछ ऐसा करना चाहते हैं: 'कब (mock.hasNextItem())। फिर Answers (नया उत्तर() { ऑब्जेक्ट उत्तर (InvocationOnMock आमंत्रण) { जिसे = true कहा जाता है; वापसी आइटम; }' यहां विधि ' hasNextItem() 'रिटर्न 'बूलियन' –

उत्तर

2

मैं गलत समझा है सकते हैं, लेकिन जहां यह कहना है कि आप केवल शून्य तरीकों सत्यापित कर सकते हैं?

उदाहरण के लिए ...

import org.junit.Test; 
import static org.mockito.Mockito.*; 

public class VoidTest { 

    private interface TestClass { 
     boolean doStuff(String arg); 
    } 

    @Test 
    public void doIt() { 
     TestClass tc = mock(TestClass.class); 

     tc.doStuff("[SOMETHING]"); 

     verify(tc).doStuff("[SOMETHING]"); // OK 
     verify(tc).doStuff("[SOMETHING ELSE ]"); // BOOM! 
    } 
} 
+0

अरे आप सही हैं, या बल्कि मैं पूरी तरह से गलत था। मैंने जो किया है वह सत्यापित किया गया था" सत्यापित करें (newFolder.mkdirs()) "" सत्यापित करें (newFolder) .mkdirs(); "-> गलत जगहों को ब्रैकेट :( – BAER

संबंधित मुद्दे