概要
Flutter
でbuild_runner
パッケージを使って開発する時必要なコードを生成したりします。特に、テストコードではMockito
を使ってテスト用のMock
を作成する時よく使います。
- build_runner: https://pub.dev/packages/build_runner
- Mockito: https://pub.dev/packages/mockito
今回のブログポストではbuild_runner
とMockito
パッケージを使ってlib
フォルダにMock
ファイルを生成する方法について説明します。
Libフォルダ中でMock生成する
普通はbuild_runner
とMockito
パッケージを使ってMock
を作る時にはテスト用なので、lib
フォルダ中のファイルでは使えことができないです。しかし、私ように他のユーザのためパッケージを作る時には次のようにlib
フォルダ中のファイルでもMock
を使う時があります。
...
@GenerateMocks([
HttpClient,
HttpClientRequest,
HttpClientResponse,
HttpHeaders,
StreamSubscription,
])
R runWithNetworkImages<R>(R Function() body) {
return HttpOverrides.runZoned(
body,
createHttpClient: (_) => _createMockImageHttpClient(),
);
}
...
今回のブログポストではこのようにlib
フォルダ中にMock
を生成する方法について説明します。
build.yamlファイル
build_runner
はbuild.yaml
ファイルで色んな設定をすることができます。このbuild.yaml
ファイルを使うとlib
フォルダ中にあるファイルでもMock
を生成することができます。
lib
フォルダ中にあるファイルでもMock
を生成するため、./build.yaml
ファイルを生成して次のように修正します。
targets:
$default:
builders:
mockito|mockBuilder:
generate_for:
- 'lib/src/run_with_network_images.dart'
このようにbuild_runner
がMockito
を使ってMock
ファイルを作る対象にlib
フォルダ中のファイルを指定すると、lib
フォルダ中のファイルでもMock
を生成することができます。
完了
これでbuild_runner
とMockito
パッケージを使ってlib
フォルダにMock
ファイルを生成する方法について見てみました。このようなことはあまりないですが、build.yaml
ファイルを使ってbuild_runner
を設定することができると言うことを知っておくと良いと思います。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。