Open KaitoMuraoka opened 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ブロックで、implementation
やtestImplementation
などの依存関係構成を指定する。それぞれの依存関係構成は、依存関係の使用方法についてGradleにさまざまな指示を与えます。
依存関係を追加するには、
app
ディレクトリにある、app
モジュールのbuild.gradle
ファイルを開きます。dependencies{}
ブロックが見つかるまで下にスクロールします。testImplementation
構成を使用して依存関係をjunit
に追加します。plugins {
...
}
android {
...
}
dependencies {
...
testImplementation 'junit:junit:4.13.2'
}
TBD
適切なテスト戦略は、コードのさまざまなパスと教会をカバーすることを中心に展開されます。非常に基本的なレベルでは、成功パス、エラーパス、境界ケースという3つのシナリオにテストを分類できます。
一般的に、考えられる全てのエラーパスを列挙し、それらに対するテストを作成して、さまざまなシナリオを発見しながら単体テストを進化させ続けることをおすすめします。
これらのカテゴリに関するテストシナリオを作成し、テスト計画のガイドラインとして使用できます。
一般的に、適切な単体テストには次の4つの特定があります。
成功パスの単体テストを作成するには、GameViewModel
のインスタンスが初期化されている前提で、updateUserGuess()
メソッドが正しい推測単語で呼び出された後にcheckUserGuess()
メソッドが呼び出されたとき、次のようになることをアサートする必要があります。
URL
https://developer.android.com/codelabs/basic-android-kotlin-compose-test-viewmodel?hl=ja#2