コンテンツ プロバイダーをテストしたいプログラマーに役立つと思うので、このエントリを追加します。
コンテンツ プロバイダーが MyProvider と呼ばれ、いくつかの定数を定義する MyProviderContract というコントラクト クラスがあるとします。
まず、MyProviderTestCaseを継承するというテスト クラスを作成しますProviderTestCase2<MyProvider>。コンストラクターを呼び出すコンストラクターを定義する必要がありますsuper。
public MyProviderTestCase() {
    super(MyProvider.class, MyProviderContract.AUTHORITY);
}
次に、プロバイダーを直接使用する代わりに (getProvider()コンテンツ プロバイダーのユーザーが直接アクセスしないため使用しないでください)、 を使用しgetMockContentResolver()てコンテンツ リゾルバーへの参照を取得し、このコンテンツ リゾルバーのメソッド ( 、 など) を呼び出しqueryますinsert。 . 次のコードでは、メソッドをテストするinsert方法を示します。
public void testInsert() {
    Uri uri = MyProviderContract.CONTENT_URI;
    ContentValues values = new ContentValues();
    values.put(MyProviderContract.FIELD1, "value 1");
    values.put(MyProviderContract.FIELD2, "value 2");
    Uri resultingUri = getMockContentResolver().insert(uri, values);
    // Then you can test the correct execution of your insert:
    assertNotNull(resultingUri);
    long id = ContentUris.parseId(resultingUri);
    assertTrue(id > 0);
}
次に、コンテンツ プロバイダーのユーザーと同様に、コンテンツ プロバイダーの代わりにコンテンツ リゾルバーを直接使用して、必要な数のテスト メソッドを追加できます。