我有一个应用程序使用ContentProvider来提供数据而不是直接访问数据库。该应用程序按预期工作,但我有单元测试问题:我如何强制ContentProvider使用测试数据库而不是“活”的?如果我没有使用ContentProvider的,我可以通过不同的数据库名我SQLiteOpenHelper
sublass的构造,但现在的数据库,在我的ContentProvider到的onCreate()的调用创建:使用ContentProvider和数据库进行Android单元测试
@Override
public boolean onCreate()
{
UKMPGDataProvider.init(getContext(), Constants.DATABASE_NAME);
return (UKMPGDataProvider.getWritableDatabase() == null) ? false : true;
}
,你可以看,数据库名称是硬编码的。
有没有办法将测试名称传递给ContentProvider?
因此,对于ProviderTestCase2,是否可以测试MyListContactActivity行为,而不会搞乱真正的Android Contact ContentProvider?你有任何工作测试代码? – sancho21 2014-05-29 23:05:27