<<前のページへ
単体テストは、ライブWebサービスまたはデータベースからデータをフェッチするクラスに依存する場合があります。 これはいくつかの理由で不便です:
- ライブサービスまたはデータベースを呼び出すと、テストの実行が遅くなります。
- Webサービスまたはデータベースが予期しない結果を返した場合、合格すべきテストの結果が「失敗(不合格)」になる可能性があります。 これは「フレークテスト」として知られています。
- ライブWebサービスまたはデータベースを使用して、考えられるすべての成功および失敗のシナリオをテストすることは困難です。
したがって、ライブWebサービスまたはデータベースに依存するのではなく、これらの依存関係を「モック」することができます。
モックを使用すると、ライブWebサービスまたはデータベースをエミュレートし、状況に応じて特定の結果を返すことができます。
一般的に言えば、クラスの代替実装を作成することで依存関係をモックできます。 これらの代替実装を手作業で作成するか、ショートカットとしてMockitoパッケージを利用してください。
このレシピは、次の手順を使用してMockitoパッケージを使用したモックの基本を示しています。
1.Mockitoパッケージを追加します。
2.テストするための関数を定義します。
3.http.Clientのモックを使用したテストファイルを作ります。
4.それぞれの条件でのテストを記述します。
5.テストを実行します。
さらなる情報は Mockito packageをご覧ください。
1. Add the package dependencies
1.Mockitoパッケージを追加します。
mockitoパッケージを使用するために、下記のように、pubspec.yamlファイルのdev_dependenciesセクションに
mockito
と
flutter_test
パッケージを追加します。
今回のサンプルでもhttpパッケージを使いますので、pubspc.yamlファイルのdependenciesセクションに追加します。
mockito : 5.0.0 はコード自動生成によりDartのnull-safetyをサポートしています。必要なコード自動生成を実行するために、build_runnerパッケージをdev_dependenciesセクションに追加します。
dependencies:
…