如何在android中测试处理SQLite数据库的方法?

时间:2012-10-22 10:16:07

标签: android junit easymock android-sqlite

我已经创建了一个应用程序来处理SQLite数据库,方法是打开,检索数据并向其中插入数据。现在我想测试我的方法。

所以,我有两个类,一个是“SQLiteHelper”,它扩展SQLiteOpenHelper来打开,创建和升级数据库,另一个是DataSource类, SQLiteDatabase对象,包含处理数据库的所有方法。

因此,为了调用我需要在SQLiteHelper类中调用open方法的任何方法,在SQLiteDatabse对象中捕获结果,然后创建DataSource类的对象,并且最后调用方法(例如,作为rawquery的结果包含游标)。

我知道它不适用于简单的JUnit测试,我读过Mock Objects,但我仍然不明白如何在我的情况下使用它。

1 个答案:

答案 0 :(得分:4)

  

我知道它不适用于简单的JUnit测试

会的。只需像往常一样调用您的方法并检查结果是否正确。

唯一重要的是您应该使用IsolatedContext来创建数据库。在这种情况下,应用程序中的原始数据库文件将保持不变。所有测试都可以使用单独的测试数据库文件,可以根据需要修改甚至删除。

您可以从ProviderTestCase2获取正确的IsolatedContext。 (您还可以查看ProviderTestCase2来源以了解其工作原理。)