के साथ यूनिट परीक्षण एंड्रॉइड एप्लिकेशन मेरे पास जावा लाइब्रेरी है जो एंड्रॉइड एपीआई से कुछ चीजों का उपयोग करती है। मैं इस पुस्तकालय के लिए यूनिट परीक्षण लिखने के लिए मॉकिटो का उपयोग करना चाहता हूं।एंड्रॉइड: रोबॉलेक्ट्रिक और मॉकिटो
क्या कोई तरीका है जिसके बारे में मैं जा सकता हूं? Using Mockito with Android virtual machine
अद्यतन:
Mockito Dalvik वी एम पर इस पोस्ट को अच्छा खेलने नहीं करता है, को देखने के
इस पोस्ट मैं Robolectric की खोज की है के बाद से, और मैं काम करने का अवसर मिला है पिवॉटल लैब्स से बाहर और इस पुस्तकालय में कुछ छोटे योगदान दें। मैं एंड्रॉइड परीक्षण ढांचे/मॉकिटो पर इसका उपयोग करने की सलाह दूंगा। इसके अलावा, आप Robolectric और Mockito का उपयोग करने के लिए स्वतंत्र हैं, लेकिन Robolectric में छाया वस्तुओं सबसे अधिक उपयोग मामलों के लिए Mockito अनावश्यक बनाते हैं।
यूनिट परीक्षण एंड्रॉइड की कोशिश करने में समस्या यह है कि आपके द्वारा निर्मित एंड्रॉइड लाइब्रेरी में स्टब अपवाद फेंकने या शून्य वापस करने के लिए हर विधि को स्टब किया जाता है। यदि आप अपने ऐप का परीक्षण करना चाहते हैं और किसी भी एंड्रॉइड व्यवहार को चाहते हैं तो आप भाग्य से बाहर हैं, जब तक कि आप रोबॉलेक्ट्रिक का उपयोग नहीं करते हैं, जो वर्गों को लोड करते समय फ्लाई पर बाइट कोड को फिर से लिखता है, और व्यवहार को अनुकरण करने वाली छाया वस्तु को इंजेक्ट करता है।
अद्यतन 2:
यह एक समय हो गया है और चीजें बदल गई। Robolectric में शैडो कक्षाओं में से कई को वास्तविक एंड्रॉइड कक्षाओं के साथ बदल दिया गया है। वास्तविक एंड्रॉइड जार अब उपयोग किए जाते हैं और रोबोइलेक्ट्रिक केवल चीजों के बहुत छोटे सेट के लिए छाया कक्षाएं लोड करता है। यह आपके एंड्रॉइड परीक्षण के लिए रोबोलेक्ट्रिक का उपयोग करने का एक और कारण है।
मैं रोबिलेक्ट्रिक द्वारा प्रदान किए गए बिल्डरों के साथ संयोजन में मॉकिटो से जासूस-निर्माण का उपयोग करता हूं। इस तरह जब आवश्यक हो तो मैं एंड्रॉइड घटकों का आंशिक मॉकिंग कर सकता हूं, उदा। FooActivity foo = spy (Robolectric.buildActivity (FooActivity.class) .get()); doReturn (नकली)। जब (foo) .getSomething(); – Alix