Я пытаюсь написать тестовые примеры для моей базы данных приложений. Это то, что я делаю в методе установки:RenamingDelegatingContext не создает тестовую базу данных
@Before
public void testCaseSetUp() {
RenamingDelegatingContext context = new RenamingDelegatingContext(getTargetContext(), "test_");
dbController = new DBController(context);
dbController.open();
}
DBController.java
public DBController(Context c) {
context = c;
}
public DBController open() throws SQLException {
dbHelper = DBHelper.getInstance(context);
database = dbHelper.getWritableDatabase();
return this;
}
RenamingDelegatingContext не создает новую тестовую базу данных вместо этого использует существующий файл базы данных. Это приводит к сбою моих тестов, поскольку у меня уже есть данные.
Это хороший улов. Я использую шаблон singleton для моего вспомогательного класса. Грета благодарю вас. –
Есть ли способ, которым я могу создать отдельную тестовую базу данных только для тестирования, а затем уничтожить ее при разрыве. Таким образом, я не касаюсь производственной базы данных? –
Точно использование 'RenamingDelegatingContext' - это путь. Когда вы используете этот контекст в 'SQLiteOpenHelper', он создаст тестовую базу данных, которая не имеет ничего общего с вашим реальным! Если бы ответ помог вам, возможно, вы сможете его продвинуть - таким образом, другие люди узнают, что это решение. – Vesko