1

ich hier ein gut gemeldetes Problem habe:Robolectric = Mockito: Kann nicht erstellen Mock oder Spy In Mockito Denn: dexcache == null

Mockito + Dexmaker on Android

jedoch die Lösung nicht funktioniert.

ich Robolectric verwende und auch wenn ich die dexmaker Cache-Position versuchen Einstellung:

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

Die Fehler Änderungen

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) 

Hast du irgendwelche Ideen, die es mir ermöglichen Mock oder Spy Objekte mit Robolectric zu erstellen?

Hinweis: Wenn ich nicht Robolectric verwenden und regelmäßig ActivityInstrumentationTestCase2 und @RunWith(AndroidJUnit4.class) verwende ich schaffen kann Mock und Spy-Objekte ...

Dieses Problem nach Mockito 1,9

+0

Mögliche Duplikat [Robolectric + Mockito] (http://stackoverflow.com/questions/35970899/robolectric-mockito) –

+0

Mein Problem ist anders, und die Lösung ist anders. – Aggressor

+0

Ihre Lösung ist anders, weil Mockito den Dexmaker vor 1.9.5 nicht unterstützt hat. Wenn Sie sicherstellen, dass Sie nicht mockito-android verwenden, können Sie jede beliebige Version verwenden. –

Antwort

1

Robolectric wird für Komponententests verwendet, die auf der JVM-Buildmaschine ausgeführt werden. Sie brauchen Dexmaker für diese Tests nicht.

so korrekt bitte Ihre 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

Es ist wahr, dass ich diese sicher entfernen konnte, aber ich bekomme immer noch denselben Fehler, wenn ich Mockito 1.9 oder weniger benutze . – Aggressor