2012-11-05 48 views
1

我使用ProviderTestCase2超类测试数据库。这里是我的代码片段:Android 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

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

0

你应该写代码:

MockContentResolver.addProvider(authority, yourprovider); 

然后有一个尝试

相关问题