Android Sqlite数据库结构在测试中

时间:2016-07-08 08:35:28

标签: android android-sqlite android-testing

我有这个测试,我把我的数据库结构转储到logcat。问题是,当我从测试中重新创建数据库时(" DROP TABLE IF EXISTS ..." - >" CREATE TABLE ...")以某种方式表#34; sqlite_sequence"是空的。

启动应用程序时所做的事情stetho表明数据库中还有所有需要的表,表格和#34; sqlite_sequence"包含他们所有的名字。

如何让我的测试检查工作正常?

public class DatabaseStructureTest  extends AndroidTestCase {

private static final String TAG = DatabaseStructureTest.class.getSimpleName();

private Context mContext;
private SQLiteDatabase db;


@Override
public void setUp() throws Exception {
    super.setUp();
    mContext = new RenamingDelegatingContext(getContext(), "test_");
    db = DatabaseMarket.getInstance(mContext).getWritableDatabase();
    assertNotNull(mContext);
}


@Override
public void tearDown() throws Exception {
    db.close();
    super.tearDown();
}


public void testDatabaseStructure() throws Exception {

    DatabaseMarket.getInstance(mContext).recreateDatabase(db);
    Cursor cursor = db.rawQuery("SELECT * FROM sqlite_sequence", null);
    DatabaseUtils.dumpCursor(cursor);
    cursor.close();
}

}

更新 - 可能的解决方案

而不是" sqlite_sequence"我从" sqlite_master"执行查询。这对于检查egz来说有点太多了。 " android_metadata"和" sqlite_sequence"但它适用于我的情况。

0 个答案:

没有答案