2014年11月12日水曜日

android sqlite3 unit test

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

コメントを投稿

Related Posts Plugin for WordPress, Blogger...