2016-03-20 3 views
6

Я использую Sugar ORM для db и Robolectric для модульного тестирования. Для использования Sugar ORM с Robolectric i следовал this вопрос.Sugar ORM нужны записи, которые нужно сохранять каждый раз при модульном тестировании?

Где я разместил свой код ниже в startEverTestSugarAppAsFirst метод и запустить.

new PersonHandler(new Activity()).insertPeople(); 
Person p = Person.findById(Person.class, 1); 
System.out.println(p.getName()); 

Он печатает название первой записи. Все идет нормально.

Но если я прокомментирую //new PersonHandler(new Activity()).insertPeople(); и снова запустил, никакие записи не будут возвращены и исключение null-указателя. Я думал, что Sugar ORM хранит записи при первом запуске, и я могу получить доступ к этим записям во второй раз.

С другой стороны, если я запускаю эмулятор, где я положил код ниже в OnCreate метода моей основного вида деятельности и во втором периоде с комментированием первой линии я могу увидеть первую запись напечатанные в журнале.

new PersonHandler(this).insertPeople(); 
Person p = Person.findById(Person.class, 1); 
Log.v("person", p.getName()); 

Итак, удаляет ли Sugar ORM db после окончания тестирования устройства? или где он сохраняет db, поэтому я могу использовать его снова и снова?

ответ

1

не SugarORM но Robolectric. Он создает временную базу данных каждый тест, поэтому между ними нет скрытой зависимости.

Это хорошая вещь, ваши модульные тесты должны быть успешно работать не зависимо от того, в котором они выполняются

+0

я могу использовать БД SQLite с дб = SQLiteDatabase.openOrCreateDatabase (Filepath, NULL); команды в robolectic unit test. Есть ли способ подключения сахара orm с указанным курсом db? – orkan

+0

http://stackoverflow.com/questions/24225541/android-sugar-orm-with-existing-db-custom-file-path –

+0

Я знаю этот пост. Но ответы касаются копирования локальной базы данных db в/data/data/..., где эмулятор может получить к ней доступ. Мне нужно использовать локальный db для модульного тестирования. Потому что у меня уже есть db at/data/data/... location. Но код сахара-орма в модульном тестировании не смотрит на это место и не использует его. – orkan

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

  • Нет связанных вопросов^_^