ここでよく報告された問題があります:
ただし、解決策は機能しません。
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)
Robolectric を使用して Mock または Spy オブジェクトを作成するためのアイデアはありますか?
注: Robolectric を使用せずに通常のオブジェクトを使用するActivityInstrumentationTestCase2
と、 @RunWith(AndroidJUnit4.class)
Mock オブジェクトと Spy オブジェクトを作成できます...
この問題は、Mockito 1.9 の後に発生しました。