我正在使用ProviderTestCase2超类测试数据库。这是我的代码片段:
public class MyProviderTest extends ProviderTestCase2<MyProvider>{
private static MockContentResolver resolver;
private static IsolatedContext context;
public MetaDataProviderTest() {
super(MyProvider.class, Provider.AUTHORITY);
}
@Override
protected void setUp() throws Exception {
try{
super.setUp();
resolver = getMockContentResolver();
} catch(Exception e){
}
}
}
public void testfirst(){
Cursor cursor = resolver.query(ProviderContract.Channels.CHANNEL_URI,null,null,null,null);
....
}
}
当我调试上面的代码时,我得到了传递的结果。当我运行它时,我得到Null光标暗示没有这样的表作为通道。请帮忙解决这个问题。我哪里出错了?
答案 0 :(得分:0)
有竞争条件。在Setup()中引入了延迟。它工作正常。但我不知道这是否是确切的解决方案。
答案 1 :(得分:0)
你应该写代码:
MockContentResolver.addProvider(authority, yourprovider);
然后试一试