1

У меня есть хорошо сообщается вопрос здесь:Robolectric = Mockito: Не удается создать Mock или Spy В Mockito Потому что: dexcache == NULL

Mockito + Dexmaker on Android

Однако решение не работает.

Я использую Robolectric и даже когда я пытаюсь настройки расположения кэша dexmaker:

@Before 
public void setUp() 
{ 
    System.setProperty("dexmaker.dexcache", RuntimeEnvironment.application.getCacheDir().getPath()); 
} 

Изменения ошибок в

java.lang.RuntimeException: java.lang.NullPointerException

at com.android.dx.DexMaker.generateClassLoader(DexMaker.java:366) 
at com.android.dx.DexMaker.generateAndLoad(DexMaker.java:439) 
at com.android.dx.stock.ProxyBuilder.buildProxyClass(ProxyBuilder.java:264) 
at com.android.dx.mockito.DexmakerMockMaker.createMock(DexmakerMockMaker.java:56) 
at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:33) 
at org.mockito.internal.MockitoCore.mock(MockitoCore.java:59) 
at org.mockito.Mockito.spy(Mockito.java:1368) 

У вас есть идеи, которые позволят мне создавать объекты Mock или Spy с помощью Robolectric?

Примечание: Когда я не использую Robolectric и использовать обычный ActivityInstrumentationTestCase2 и @RunWith(AndroidJUnit4.class) я могу создать Мок и Spy объектов ...

Этот вопрос возник после того, как Mockito 1.9

+0

Возможный дубликат [Robolectric + Mockito] (http://stackoverflow.com/questions/35970899/robolectric-mockito) –

+0

Моя проблема отличается и решение другой. – Aggressor

+0

Ваше решение отличается от того, что Mockito не поддерживал dexmaker до 1.9.5. Если вы убедитесь, что вы не используете mockito-android, вы можете использовать любую версию, которую хотите. –

ответ

1

Robolectric используется для модульных испытаний, которые запускаются на строительной машине JVM. Для этих тестов вам не нужен Dexmaker.

Так Исправьте build.gradle:

androidTestCompile "com.crittercism.dexmaker:dexmaker:${versions.dexmaker}" 
androidTestCompile "com.crittercism.dexmaker:dexmaker-dx:${versions.dexmaker}" 
androidTestCompile "com.crittercism.dexmaker:dexmaker-mockito:${versions.dexmaker}" 
+0

Это правда, что я мог бы безопасно удалить их, но я все равно получаю ту же ошибку, если не использую Mockito 1.9 или меньше , – Aggressor

Смежные вопросы