带有数据库的Android测试用例和对TestProject资源的访问

时间:2014-11-07 09:09:30

标签: android sqlite android-resources

我找到了一种访问TestProject资源的方法

Accessing resources in an android test project

但是当我使用ActivityTestCase而不是AndroidTestcase时,我无法访问数据库

java.lang.NullPointerException
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
at com.j256.ormlite.android.AndroidConnectionSource.getReadWriteConnection(AndroidConnectionSource.java:66)
at com.j256.ormlite.android.AndroidConnectionSource.getReadOnlyConnection(AndroidConnectionSource.java:54)
at com.j256.ormlite.dao.BaseDaoImpl.idExists(BaseDaoImpl.java:805)
at com.j256.ormlite.dao.BaseDaoImpl.createOrUpdate(BaseDaoImpl.java:335)

有两种方法可以同时使用吗?

1 个答案:

答案 0 :(得分:0)

好的,我解决了我的问题:

我现在使用InstrumentationTestCase(我认为ActivityTestCase也可以使用)

问题在于有两种情境

    Context mainProjectContext = getInstrumentation().getTargetContext();
    Context testProjectContext = getInstrumentation().getContext();

现在我可以从testProjectContext中获取资源并让数据库与mainProjectContext一起运行