2016-04-26 4 views
0

Я немного потерял, как правильно протестировать базу данных моего приложения для Android. У меня есть свой обработчик базы данных, который расширяет SQLiteOpenHelper. Некоторые решения советуют насмехаться над этим классом, но как это даст мне отдельный экземпляр моей базы данных? Я также вижу предложение использовать in-memory SQLite database, но это похоже на много ненужного жонглирования ...Тесты блоков Android и обработчик базы данных

Как я должен тестировать свою базу данных? Любая помощь оценивается.

ответ

1

Это, как я сделал для моей библиотеки базы данных:

public class TestDatabaseManager extends AndroidTestCase { 

    HrSuiteDatabaseManager dbm; 

    public void setUp() throws Exception { 
     super.setUp(); 

     RenamingDelegatingContext rdcontext = new RenamingDelegatingContext(getContext(), "test_"); 
     dbm = new HrSuiteDatabaseManager(rdcontext); 
     dbm.registerTableAccess(new EmployeeAccess()); 
    } 

    public void testInsertion() { 
     EmployeeAccess ea = dbm.getEmployeeAccess(); 
     ea.insert(createEmployee(0)); 

     List<Employee> emps = ea.getAll(); 
     assertEquals(1, emps.size()); 

     assertEmployee(emps.get(0), 0); 
    } 
} 

Ключевым моментом здесь является класс RenamingDelegatingcontext, который будет создавать файл базы данных с заданным префиксом.

У меня есть HrSuiteDatabaseManager, который является производным от SQLiteOpenHelper. Я создаю экземпляр, используя RenamingDelegatingcontext и использую его в своих тестовых случаях, как обычно.

Смежные вопросы