6
我使用Sugar ORM for db和Robolectric進行單元測試。要使用Robolectric的Sugar ORM,我遵循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();
並再次運行,則不會返回任何記錄並給出空指針異常。我認爲Sugar ORM在第一次運行時將記錄存儲在某處,並且我可以在第二次訪問這些記錄。另一方面,如果我運行模擬器,將代碼放在我的主要活動的onCreate方法中,並在第二次運行時註釋掉第一行,我可以看到打印在日誌中的第一條記錄。
new PersonHandler(this).insertPeople();
Person p = Person.findById(Person.class, 1);
Log.v("person", p.getName());
那麼,單元測試結束後Sugar OrM刪除db?或者它保存的分貝,所以我可以一遍又一遍地使用它?
我可以使用SQLite數據庫與DB = SQLiteDatabase.openOrCreateDatabase(文件路徑,NULL)爲了運行不依賴;命令在robolectic單元測試。有沒有辦法將sugar orm與指定的db路徑連接起來? – orkan
http://stackoverflow.com/questions/24225541/android-sugar-orm-with-existing-db-custom-file-path –
我知道這個職位。但答案是將本地數據庫複製到模擬器可以訪問它的/ data/data/...文件夾。我需要使用本地數據庫進行單元測試。因爲,我已經在/ data/data/...位置有db。但是單元測試中的sugar orm代碼不會查看這個位置並使用它。 – orkan