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 件のコメント:
コメントを投稿