Android ProviderTestCase2:在运行模式下失败,在调试模式下通过

时间:2012-11-05 11:47:17

标签: android junit testcase

我正在使用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光标暗示没有这样的表作为通道。请帮忙解决这个问题。我哪里出错了?

2 个答案:

答案 0 :(得分:0)

有竞争条件。在Setup()中引入了延迟。它工作正常。但我不知道这是否是确切的解决方案。

答案 1 :(得分:0)

你应该写代码:

MockContentResolver.addProvider(authority, yourprovider);

然后试一试