Search code examples
androidjunittestcase

Android ProviderTestCase2: Fails in Run mode, Passes in Debug mode


I'm testing database using ProviderTestCase2 super class. Here is my code snippet:

    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);
       ....
    }
  }

When I debug the above code Im getting the passed result. When I run it, I get Null cursor implying there is no such table as channel. Please help in solving this. Where did I go wrong?


Solution

  • There was race condition. Introduced delay in Setup(). It's working fine. But I don't know whether this is the exact solution.