package jp.mixi.sample.test.test; import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.net.Uri; import android.test.ProviderTestCase2; import jp.mixi.sample.test.TestTargetContentProvider; public class SampleContentProviderTestCase extends ProviderTestCase2<TestTargetContentProvider> { private Context mMockContext; public SampleContentProviderTestCase() { this(TestTargetContentProvider.class, TestTargetContentProvider.AUTHORITY); } public SampleContentProviderTestCase(Class<TestTargetContentProvider> providerClass, String providerAuthority) { super(providerClass, providerAuthority); } @Override protected void setUp() throws Exception { super.setUp(); mMockContext = getMockContext(); } public void testInsertNewText() throws Exception { // モックされたコンテキストから、ContentResolver を取り出し、それを経由してデータベースへとアクセスする // テストからアクセスする場合、毎回データベースが作りなおされるため、後始末としてテストで利用したデータを消すなどは必要ない // また、データベースそのものも、テスト用のものが作成されるため、本体のデータベースには影響を及ぼさないようになっている ContentResolver resolver = mMockContext.getContentResolver(); ContentValues values = new ContentValues(); values.put("name", "KeithYokoma"); Uri newUri = resolver.insert(TestTargetContentProvider.CONTENT_URI, values); assertNotNull(newUri); assertEquals(ContentUris.withAppendedId(TestTargetContentProvider.CONTENT_URI, 1), newUri); } }