2017-09-26 73 views
0

我試圖運行Roboelectric單元測試來測試,如果預期的活動入門與否,但我發現了以下錯誤:NoClassDefFoundError的同時運行Roboelectric單元測試

java.lang.NoClassDefFoundError: Could not initialize class android.os.AsyncTask

我要找爲解決方案,但目前爲止沒有運氣,有沒有人遇到過這個問題。

找到我下面的測試類

@RunWith(RobolectricTestRunner.class) 
@Config(constants = BuildConfig.class, manifest = "AndroidManifest.xml", minSdk = 21, maxSdk = 21, application = MyApplication.class) 
@PowerMockIgnore({"org.mockito.*", "org.robolectric.*", "android.*"}) 
public class PushManagerTest { 

    @Test 
    public void shouldLaunchNewActivity() throws Exception { 
    Activity testActivity = Robolectric.setupActivity(TestActivity.class); 

    Intent expectedIntent = new Intent(testActivity, NewActivity.class); 
    Intent actualIntent = ShadowApplication.getInstance().getNextStartedActivity(); 
    assertEquals(expectedIntent.getComponent(), actualIntent.getComponent()); 
    } 
} 
+0

爲什麼你需要'PowerMock'? –

+0

對於運行某個其他測試,它與此測試用例無關,但我需要它在我的套件中運行其他測試 – Ezio

+0

對於運行某個其他測試,它與此測試用例無關,但我需要它運行其他測試在我的套件中進行測試 – Ezio

回答

0

我終於修好了,不知道這是否是正確的做法或NOR但測試預期

工作,我不得不添加以下在我的應用程序類的onCreate

try{ 
    Class.forName("android.os.AsyncTask"); 
}catch(Throwable ignore) { 
     // ignored 
} 

希望它可以幫助別人

相關問題