androidでsqlite3のunit testを実施する場合、通常のテストを実施すると既存のdbを上書きしてしまいます。
なので、 androidにはテスト用にRenamingDelegatingContextというクラスが用意されているので、このクラスでテストDBを作成してテストします。
こうすることにより、本番用のDBを操作しないでテストを行うことができます。
環境
- android:minSdkVersion="14"
- android:targetSdkVersion="21"
- andoid studio 0.8.14
サンプル
public void testIsFaceboookAuthentication_true() { Context context = new RenamingDelegatingContext(mActivity.getApplicationContext(), "test_"); // テストデータ登録 TestUserHelper.registerTestUser(context); assertTrue(User.isFaceboookAuthentication(context)); // テストデータ削除 User.delete(mActivity.getApplicationContext(), null); }
Context context = new RenamingDelegatingContext(mActivity.getApplicationContext(), "test_")を使うことでテスト実行時に、プレフィックスに指定した「test_」が付加された「test_xxxxx.db」というファイル名としてDBが作成されます。こちらのDBを利用することで、各テストケース実行時に毎回クリーンなDBの状態で開始できます。
参考サイト
0 件のコメント:
コメントを投稿