运行Roboelectric单元测试时出现NoClassDefFoundError

时间:2017-09-26 06:15:49

标签: java android unit-testing robolectric

我正在尝试运行Roboelectric Unit测试以测试预期的活动是否开始,但是因为我收到以下错误:

  

java.lang.NoClassDefFoundError:无法初始化类   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());
    }
}

1 个答案:

答案 0 :(得分:1)

我终于解决了它,不知道它是正确的方式还是不正确但测试按预期工作

我必须在我的Application类的onCreate中添加以下行

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

希望它有助于某人