मैं अपने एंड्रॉइड परीक्षण (रोबोटियम का उपयोग करके) में मॉकिटो (1.9.5 आरसी 1) काम करने की कोशिश कर रहा हूं। इसे डीवीएम पर चलाने के लिए मैंने टेक्स-प्रोजेक्ट के क्लासपाथ में dexmaker.jar और dexmaker-mockito.jar (v 0.9) डाला।Android परीक्षण के लिए डेक्समेकर के साथ मॉकिटो का उपयोग कैसे करें?
जब ग्रहण में एक Android JUnit परीक्षण के रूप में परीक्षण निम्नलिखित चलाएँ:
package com.stampay.pos.test;
import roboguice.RoboGuice;
import android.app.Application;
import com.jayway.android.robotium.solo.Solo;
import com.stampay.pos.activities.HomeActivity;
import com.stampay.pos.model.Consumer;
import com.stampay.pos.util.ScannerAndroid;
import static org.mockito.Mockito.*;
public class HomeActivityTest extends ActivityTest<HomeActivity> {
private Solo solo;
Application app;
public HomeActivityTest() {
super(HomeActivity.class);
}
@Override
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
RoboGuice.util.reset();
}
public void testScan() throws Exception {
ScannerAndroid scanner = (ScannerAndroid) getActivity().getScannerHelper();
Consumer mockConsumer = mock(Consumer.class);
//scanner.generateResult("consumer1");
}
}
मैं निम्नलिखित स्टैक ट्रेस मिलती है:
java.lang.ExceptionInInitializerError
at com.stampay.pos.test.HomeActivityTest.testScan(HomeActivityTest.java:41)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)
Caused by: java.lang.ExceptionInInitializerError
at org.mockito.internal.MockitoCore.<init>(MockitoCore.java:40)
at org.mockito.Mockito.<clinit>(Mockito.java:932)
... 15 more
Caused by: java.lang.ExceptionInInitializerError
at org.mockito.internal.util.MockUtil.<clinit>(MockUtil.java:21)
... 17 more
Caused by: org.mockito.exceptions.misusing.MockitoConfigurationException: Failed to load interface org.mockito.plugins.MockMaker using jar:file:/data/app/com.stampay.pos.test-2.apk!/mockito-extensions/org.mockito.plugins.MockMaker
... 15 more
Caused by: java.lang.ClassNotFoundException: com.google.dexmaker.mockito.DexmakerMockMaker
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at org.mockito.internal.configuration.ClassPathLoader.loadImplementations(ClassPathLoader.java:133)
at org.mockito.internal.configuration.ClassPathLoader.findPlatformMockMaker(ClassPathLoader.java:102)
at org.mockito.internal.configuration.ClassPathLoader.<clinit>(ClassPathLoader.java:61)
at org.mockito.internal.util.MockUtil.<clinit>(MockUtil.java:21)
at org.mockito.internal.MockitoCore.<init>(MockitoCore.java:40)
at org.mockito.Mockito.<clinit>(Mockito.java:932)
... 15 more
कोई सुझाव? http://code.google.com/p/dexmaker/ और http://code.google.com/p/mockito/wiki/ReleaseNotes कोई सहायक जानकारी प्रदान नहीं करते हैं।
ऐसा ही एक समस्या यहाँ रिपोर्ट किया जा रहा है: http://www.paulbutcher.com/2012/05/mockito-on-android-step-by-step/#comment-65955
अद्यतन: https://github.com/paulbutcher/mockito-on-android/tree/master/WarehouseManagerTest/libs सब से .jar फाइलों के साथ , सुचारू रूप से काम करता है, हालांकि वह पर 1.9.1
मेरे पास एक ही समस्या हो रही है, मैं मैवेन का उपयोग कर निर्भरता शामिल कर रहा हूं, लेकिन मेरे पास यह वही त्रुटि है जिसे उठाया जा रहा है कि यह com.google.dexmaker.mockito.DexmakerMockMaker क्लास नहीं ढूंढ सकता है। –
इसके अलावा, मैंने इसे ProGuard द्वारा हटाए जाने में देखा है, लेकिन मैंने स्पष्ट रूप से DexmakerMockMaker क्लास को रखने का प्रयास किया है। –