KaitoMuraoka / PracticeAndroid

0 stars 0 forks source link

ViewModelの単体テストを作成する #2

Open KaitoMuraoka opened 1 year ago

KaitoMuraoka commented 1 year ago

URL

https://developer.android.com/codelabs/basic-android-kotlin-compose-test-viewmodel?hl=ja#2

KaitoMuraoka commented 1 year ago

テストの依存関係を追加する

このCodelabでは、JUnitフレームワークを使用して単体テストを作成する。このフレームワークを使用するのには、アプリのモジュールのbuild.gradleファイルに依存関係として追加する必要がある。

implementation構成を使用して、アプリに必要な依存関係を指定する。 例えば、ViewModelライブラリを使用するには、次のコードスニペットに示すように、依存関係をandroidx.lifecycle:lifecycle-viewmodel-composeに追加する必要がある。

dependencies {

    ...
    implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1"
}

これで、このライブラリをアプリのソースコードで使用できるようになりました。Android Studioで、生成されたアプリパッケージ(APK)ファイルにライブラリを追加できます。しかし、単体テストコードをAPKファイルの一部にすることは望ましくない。 なぜなら、テストコードはユーザーが使用する機能を追加するものではないからである。また、APKのサイズにも影響する。 テストコードに必要な依存関係についても同様であり、それぞれ別にしておく必要があります。そのためには、testImplementation 構成を使用します。こうすることで、構成がアプリコードではなくローカルのテスト ソースコードに適用されることを示します。

プロジェクトに依存関係を追加するには、build.gradleファイルのdependenciesブロックで、implementationtestImplementationなどの依存関係構成を指定する。それぞれの依存関係構成は、依存関係の使用方法についてGradleにさまざまな指示を与えます。

依存関係を追加するには、

  1. [Project]ペインのappディレクトリにある、appモジュールのbuild.gradleファイルを開きます。
  1. ファイル内で、dependencies{}ブロックが見つかるまで下にスクロールします。testImplementation構成を使用して依存関係をjunitに追加します。
plugins {
    ...
}

android {
    ...
}

dependencies {
    ...
    testImplementation 'junit:junit:4.13.2'
}
  1. 次のスクリーンショットに示すように、build.gradleファイルの上部にある通知バーで[Sync Now]をクリックし、インポートとビルドを終了します。

備品構成表(BOM)の作成

TBD

KaitoMuraoka commented 1 year ago

テスト戦略

適切なテスト戦略は、コードのさまざまなパスと教会をカバーすることを中心に展開されます。非常に基本的なレベルでは、成功パス、エラーパス、境界ケースという3つのシナリオにテストを分類できます。

一般的に、考えられる全てのエラーパスを列挙し、それらに対するテストを作成して、さまざまなシナリオを発見しながら単体テストを進化させ続けることをおすすめします。

これらのカテゴリに関するテストシナリオを作成し、テスト計画のガイドラインとして使用できます。

テストを作成する

一般的に、適切な単体テストには次の4つの特定があります。

成功パス

成功パスの単体テストを作成するには、GameViewModelのインスタンスが初期化されている前提で、updateUserGuess()メソッドが正しい推測単語で呼び出された後にcheckUserGuess()メソッドが呼び出されたとき、次のようになることをアサートする必要があります。