我在JUnit安卓测试中测试insert方法时遇到了问题,数据库中没有保存enrty:
public long save(TAV t) {
ContentValues v = new ContentValues();
v.put(TAV_TITRE, t.getTitle());
v.put(TAV_DATE, t.getDate());
v.put(TAV_DESCRIPTION, t.getDescription());
return db.insert(TAV_TABLE, null, v);
}
//this is the JUnit Test Method
public void testAddition() {
setUp();
TAV t = new TAV("titre", "date", "decsritpion");
m.open();
m.save(t);
Log.i(tag, "insertion");
testShowAll();
}请帮帮我!
发布于 2014-09-09 04:27:31
在save()方法中,确保创建一个数据库实例,如SQLiteDatabase db = this.getWritableDatabase();.And remove return from return db.insert(TAV_TABLE, null, v);,即使用
public void save(TAV t) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues v = new ContentValues();
v.put(TAV_TITRE, t.getTitle());
v.put(TAV_DATE, t.getDate());
v.put(TAV_DESCRIPTION, t.getDescription());
db.insert(TAV_TABLE, null, v);
}从SQLiteDatabase Documents
public long insert (String table,String nullColumnHack,ContentValues values)返回新插入行的行ID,如果发生错误,则返回-1
因此,如果您的目的只是将一行添加到数据库中,那么您的方法不需要返回anything.So,只需将方法的返回类型设置为void并在其中使用db.insert即可。
https://stackoverflow.com/questions/25732548
复制相似问题