Android: модульный тест чтения существующей базы данных - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь выполнить модульное тестирование запросов в моем приложении. База данных sqlite (большая БД, поставляемая с приложением).

Я могу легко создать и вставить / прочитать новую пустую БД в тесте junit:

@RunWith(AndroidJUnit4.class)
public class SimpleEntityReadWriteTest {
    private UserDao userDao;
    private TestDatabase db;

    @Before
    public void createDb() {
        Context context = ApplicationProvider.getApplicationContext();
        db = Room.inMemoryDatabaseBuilder(context, TestDatabase.class).build();
        userDao = db.getUserDao();
    }

    @After
    public void closeDb() throws IOException {
        db.close();
    }

    @Test
    public void writeUserAndReadInList() throws Exception {
        User user = TestUtil.createUser(3);
        user.setName("george");
        userDao.insert(user);
        List<User> byName = userDao.findUsersByName("george");
        assertThat(byName.get(0), equalTo(user));
    }
}

Но как я могу прочитать существующую непустую БД?

Я хотел бы сделать что-то вроде SQLiteDatabase myDb = SQLiteDatabase.openDatabase(DB_PATH,null, SQLiteDatabase.OPEN_READWRITE);

...