[Flutter] build_runnerとMockitoを使ってlibフォルダにMockファイルを生成する

[Flutter] build_runnerとMockitoを使ってlibフォルダにMockファイルを生成する

2023-07-03 hit count image

build_runnerとMokitoパッケージを使ってlibフォルダにMockファイルを生成する方法について説明します。

概要

Flutterbuild_runnerパッケージを使って開発する時必要なコードを生成したりします。特に、テストコードではMockitoを使ってテスト用のMockを作成する時よく使います。

今回のブログポストではbuild_runnerMockitoパッケージを使ってlibフォルダにMockファイルを生成する方法について説明します。

Libフォルダ中でMock生成する

普通はbuild_runnerMockitoパッケージを使って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_runnerbuild.yamlファイルで色んな設定をすることができます。このbuild.yamlファイルを使うとlibフォルダ中にあるファイルでもMockを生成することができます。

libフォルダ中にあるファイルでもMockを生成するため、./build.yamlファイルを生成して次のように修正します。

targets:
  $default:
    builders:
      mockito|mockBuilder:
        generate_for:
          - 'lib/src/run_with_network_images.dart'

このようにbuild_runnerMockitoを使ってMockファイルを作る対象にlibフォルダ中のファイルを指定すると、libフォルダ中のファイルでもMockを生成することができます。

完了

これでbuild_runnerMockitoパッケージを使ってlibフォルダにMockファイルを生成する方法について見てみました。このようなことはあまりないですが、build.yamlファイルを使ってbuild_runnerを設定することができると言うことを知っておくと良いと思います。

私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!

アプリ広報

今見てるブログを作成たDekuが開発したアプリを使ってみてください。
Dekuが開発したアプリはFlutterで開発されています。

興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。

Posts