Я использую 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, поэтому я могу использовать его снова и снова?
я могу использовать БД SQLite с дб = SQLiteDatabase.openOrCreateDatabase (Filepath, NULL); команды в robolectic unit test. Есть ли способ подключения сахара orm с указанным курсом db? – orkan
http://stackoverflow.com/questions/24225541/android-sugar-orm-with-existing-db-custom-file-path –
Я знаю этот пост. Но ответы касаются копирования локальной базы данных db в/data/data/..., где эмулятор может получить к ней доступ. Мне нужно использовать локальный db для модульного тестирования. Потому что у меня уже есть db at/data/data/... location. Но код сахара-орма в модульном тестировании не смотрит на это место и не использует его. – orkan