Я пытаюсь создать базу данных, которая содержит фиктивные объекты для целей тестирования. Я бы предпочел, чтобы эта БД находилась в моем тестовом пакете, а не в пакете приложения.
protected class MockObjectOpenHelper extends SQLiteOpenHelper {
MockObjectOpenHelper() {
super(instrumentation.getContext(), FILE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
...
}
}
Когда я создаю свой SQLiteOpenHelper из своего приложения, я передаю контекст инструментария, а также путь, относящийся к каталогу базы данных моего тестового пакета. Я думаю, что это позволило бы мне создать базу данных в моем тестовом пакете, но, похоже, это не так. Каталог «Базы данных» никогда не создается в моем тестовом пакете.
Есть ли способ заставить мое приложение создавать и получать доступ к базе данных, которая находится в моем тестовом проекте?
Исключение:
14:50:13.917 pool-1-thread-1 android.database.sqlite.SQLiteException: unable to open database file
at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1584)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:638)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:659)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:652)
at android.app.ApplicationContext.openOrCreateDatabase(ApplicationContext.java:482)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
at com.myapp.test.http.DbMockHttpClient.createClientRequestDirector(DbMockHttpClient.java:52)
at com.myapp.test.http.UniversalMockHttpClient.createClientRequestDirector(UniversalMockHttpClient.java:42)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:539)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
E