1

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 カーソルが表示されます。これを解決するのを手伝ってください。どこで私は間違えましたか?

4

2 に答える 2

0

競合状態がありました。Setup()に遅延が導入されました。正常に動作しています。しかし、これが正確な解決策であるかどうかはわかりません。

于 2012-11-06T09:01:27.950 に答える
0

コードを書く必要があります:

MockContentResolver.addProvider(authority, yourprovider);

それから試してみてください

于 2012-11-21T08:05:11.427 に答える