1
我目前正試圖在android中測試一個greenDao實體,我無法弄清楚如何正確獲取dao對象的副本。測試GreenDao實體,QueryBuilder始終爲空
我目前正在:
@Before
public void setUp() throws Exception {
user = new User(id, userId, email, password, token);
Context context = new MockContext();
DaoMaster.DevOpenHelper openHelper = new DaoMaster.DevOpenHelper(context , null, null);
SQLiteDatabase db = openHelper.getWritableDatabase();
daoSession = new DaoMaster(db).newSession();
userDb = daoSession.getUserDao();
assertNotNull(userDb); // This PASSES
userDb.queryBuilder().list(); // This ALWAYS throws null pointer exception
}
有什麼建議?我的測試類擴展AndroidTestCase
UPDATE:
我已經制定了如何使用設備上運行測試時訪問實體如下:
public class UserDaoHelperTest extends ApplicationTestCase<Application> {
private UserDao userDb;
public UserDaoHelperTest() {
super(Application.class);
}
@Override
public void setUp(){
DaoMaster.DevOpenHelper openHelper = new DaoMaster.DevOpenHelper(getContext(), null, null);
SQLiteDatabase db = openHelper.getWritableDatabase();
DaoSession daoSession = new DaoMaster(db).newSession();
userDb = daoSession.getUserDao();
}
}
daoSession.getUserDao()必須爲null嘗試檢查一下。 –
'assertNotNull(userDb);'通過沒有問題,所以它不能是 –
@Joe Maher:這是一個Android測試(在設備或模擬器上運行)還是JUnit測試在PC上運行? –