2013-02-08 17 views
6

मैं एंड्रॉइड.जर में स्टब किए गए तरीकों को प्रतिस्थापित करने के लिए रोबॉलेक्ट्रिक का उपयोग करके एक यूनिट टेस्ट को कार्यान्वित करने की कोशिश कर रहा हूं, जबकि एंड्रॉइड क्लास (फ्रैगमेंट, मेरे मामले में) को नकल करने के लिए जेमॉकिट का उपयोग भी कर रहा हूं। हालांकि, मैं इसे काम करने के लिए प्रतीत नहीं कर सकता। अगर मैं @RunWith(RobolectricTestRunner.class) के साथ परीक्षण वर्ग व्याख्या करते हैं, मैं:jmockit और robolectric coexist कर सकते हैं?

java.lang.IllegalStateException: JMockit ठीक से प्रारंभ नहीं किया गया था; जाँच करें कि jmockit.jar classpath में junit.jar के पहले आता है (यदि JUnit का उपयोग कर, अगर नहीं, प्रलेखन जाँच)

अगर मैं @RunWith(JMockit.class) या कोई @RunWith, मैं का उपयोग करें "स्टब!" अपवाद नहीं।

फिलहाल, मेरे क्लासपाथ में निम्नलिखित क्रम में चीजें हैं: robolectric, jmockit, junit, android।

कोई भी व्यक्ति जेमॉकिट और रोबोलेक्ट्रिक को अच्छी तरह से खेलने में सक्षम रहा है?

+0

यह PowerMock मुझे लगता है कि के समान है। मुझे अभी तक कोई समाधान नहीं पता –

उत्तर

5

यह संभव होना चाहिए। मैंने इसका परीक्षण नहीं किया है, लेकिन आप अपना खुद का परीक्षण धावक बना सकते हैं।

JMockit और Robolectric परीक्षण धावकों के लिए स्रोत पर एक नज़र डालें:

दो Robolectric एक के

और अधिक जटिल है, इसलिए हम डॉन ' टी उस कार्यक्षमता को डुप्लिकेट करना चाहता हूं। जेमॉकिट परीक्षण धावक काफी सरल है। इसे RobolectricTestRunner का विस्तार करने और JMockit कार्यक्षमता को शामिल करने के लिए काम करना चाहिए।

import mockit.internal.startup.*; 
class MyTestRunner extends RobolectricTestRunner { 

    static { Startup.initializeIfNeeded(); } 

    /** 
    * Constructs a new instance of the test runner. 
    * 
    * @throws InitializationError if the test class is malformed 
    */ 
    public MyTestRunner(Class<?> testClass) throws InitializationError 
    { 
     super(testClass); 
    } 
} 
+0

दिलचस्प, सुझाव के लिए धन्यवाद! –

+0

@ जो, मैं पावरमोक और रोबोलेक्ट्रिक के लिए समान दृष्टिकोण की कोशिश कर रहा था। लेकिन मैं जल्दी दौरे में असफल रहा। यह काफी जटिल है। शायद मैं दूसरा दौर करूंगा :) –

+0

इससे मदद नहीं मिली। समस्या यह है कि, जैसे ही मैं परियोजना के लिए जेमॉकिट निर्भरता जोड़ता हूं (वास्तव में इसे कहीं भी उपयोग किए बिना), रोबोइलेक्ट्रिक परीक्षण "कोई संगत विधि नहीं मिली: फायरटेस्टरुनस्टार्ट" – altumano

2

संस्करण संस्करण 1.8 (27 अप्रैल, 2014) संस्करण में जैमोकिट Robolectric के संयोजन के साथ काम कर सकता है।

JMockit now works fine with the Robolectric Android testing tool (tested with Robolectric 2.2 and 2.3). 

http://jmockit.org/changes.html

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