【Flutter】テストを書く時

投稿日: 2025/02/01
更新日: 2025/02/01
シェア:

URL copied!


概要

Flutter 勉強中の私がテストを書く時にわかったこと

実行コマンド

全件実施

flutter test

特定のファイル

flutter test test/hoge_test.dart

ファイル名

ファイル名の最後に _test とつける必要がある。

hoge_hoge_test.dart

テストファイル位置

テストファイルは機能の近くにおいて確認したい癖があったのだが、 Flutter はそうではないらしい。

lib/service/xxxx/aaa.dart のテストを lib/service/xxxx/test/aaa_test.dart と作りたくなっていたが、これはよくない。 以下が理由である。

テストファイルの認識

Flutter は test/ ディレクトリをテストディレクトリとして認識し、この中にある *_test.dart ファイルをテスト対象とする。

lib/ ディレクトリとテスト

lib/ は本番コードを配置する場所であり、Dart のルールとして、lib/ 内のコードは アプリのビルドに含まれる。
一方で、test/bin/ など lib/ の外にあるコードは、本番コードには含まれない(Flutter のビルド対象外)。
テストコードを lib/ に配置すると、以下の問題が発生する可能性がある:

  1. ビルドしたファイルが大きくなる(不要なテストコードがアプリに含まれる)
  2. 予期せぬ動作を引き起こす(例えば、テスト用のデータやロジックが本番環境で実行される可能性)
  3. セキュリティリスクが増える(テストデータやデバッグ用のコードが誤って公開される)

そのため、テストコードは lib/ ではなく test/ ディレクトリに配置するのが推奨される。