2010-03-30 76 views
1

我试图在我的应用程序上开始单元测试(应该从一开始就这样做)。我有一个Eclipse项目结构设置,一切似乎运作良好,但...Android单元测试和使用不同的数据库文件

我继承SQLiteOpenHelper访问应用程序数据库。这适用于应用程序,但在单元测试中使用相同的类时,它将写入与实际应用程序相同的数据库。这显然相当令人恼火,因为在开发和测试实际应用程序时出现单元测试数据。

什么使SQLiteOpenHelper类写入到不同的数据库文件时,从单元测试被称为最好的方法是什么?

回答

2

如果你没有与添加一些代码到你原来的程序问题,你也可以一类变量和适当的getter和setter方法添加到您的应用程序子类定义,如果你在测试模式与否。然后你的单元测试类可以访问setter方法并设置“true”的测试。在您的代码中定义数据库的位置,您可以访问getter方法来决定要采用哪个数据库。

2

你可以考虑过度使用EasyMock的图书馆在easymock.org嘲笑SQLiteOpenHelpers子类,它的方法。

0

为了避免对原始类进行很多更改,我在每次测试开始时备份数据库文件(使用copyFile),清除/插入正确的值,然后恢复备份的数据库文件完成测试后。