java.lang.IllegalStateException:从Robolectric 3.0-rc2迁移到Robolectric 4.3后,非法的连接指针x

时间:2019-07-18 18:50:42

标签: android sqlite junit junit4 robolectric

我从Robolectric 3.0-rc2迁移到Robolectric 4.3。

迁移后,我的测试开始失败,并显示以下错误: java.lang.IllegalStateException:非法的连接指针1。

在失败的测试中,我没有测试SQLite数据库,实际上,我为实际使用该数据库的类创建了一个实例。

我在下面的链接https://www.bountysource.com/issues/32208329-java-lang-runtimeexception-java-lang-illegalstateexception-illegal-connection-pointer-1-with-content-provider中看到,在@After方法中进行每次测试后,应该关闭SQL数据库,但是在某些测试中,仍然会出现异常。

        public OperatingTests(Object initState) throws Exception {
    // This is a workaround for the fact that Robolectric's paramaterized
    // test runner does not properly work with enum classes
    this.initState = Enum.valueOf(States.class, initState.toString());
    sm = new ClassTester(ApplicationProvider.getApplicationContext());
    sm.setInitialState(this.initState);
    sm.initialize();
    sm.getDataFetchRequestDB().clear();
    AnnFetchRequestRepository.getHelper(ApplicationProvider.getApplicationContext()).clear();
}
@After
public void tearDown() {
    SQLiteManager.closeDatabases(ApplicationProvider.getApplicationContext());
}

有时候,当我全部进行测试时,我会在其中一些测试中遇到相同的异常

0 个答案:

没有答案