При попытке изменить класс Calendar на класс mock с помощью jmockit (version1.8) я получил ошибку ниже.Android + jmockit: java.lang.VerifyError: mockit/internal/startup/Startup
Давно ли кто-нибудь знает, как это исправить? Любая помощь будет оценена.
Спасибо,
CalendarMock.java
import java.util.Calendar;
import java.util.GregorianCalendar;
import mockit.*;
public final class CalendarMock extends MockUp<Calendar> {
@Mock
public static Long getInstance() { return new GregorianCalendar(2000, 0, 1, 0, 0, 0).getTimeInMillis(); }
}
DummyTest.java
public void testDummy() throws Exception {
new CalendarMock();
}
Error Log
java.lang.VerifyError: mockit/internal/startup/Startup
at mockit.MockUp.<clinit>(MockUp.java:85)
at com.hoge.testDummy(DummyTest.java:)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
Выполняете ли вы тест на Dalvik VM? JMockit использует API-интерфейс 'java.lang.instrument', который недоступен для Dalvik, поэтому он не может работать в этой среде; вам нужно будет использовать JVM. –
@ Rogério Спасибо! Re Really !? Да, я пытаюсь использовать JMockit на Android. Как я могу использовать mock на Dalvik VM? – zono
Вам понадобится использовать другой инструмент для издевательств, который может работать в VM Dalvik. JMockit работает только с JVM. –