⛳
【Flutter】integration_testを使ってみた
はじめに
Flutter アプリ開発において、統合テスト(インテグレーションテスト)は重要です。この記事では、integration_test
パッケージを使用して、実際のデバイスやエミュレーターでアプリの機能をテストする方法をメモとして記しておきます。
統合テストとは
統合テストは、アプリ全体の機能が正しく動作することを確認するためのテストです。ボタンのタップや画面の遷移など、ユーザーの操作を模倣してアプリの挙動をテストします。
初回立ち上げ時のカウンターアプリ
lib/main.dart
を開き、以下のようにフローティングアクションボタンにkey
パラメータを追加します。
ポイント:ウィジェットにキーを設定すると、テスト時に特定のウィジェットを見つけやすくなります。
統合テストの依存関係追加
統合テストを実行するために必要なパッケージを追加します。
ターミナルコマンド
flutter pub add 'dev:integration_test:{"sdk":"flutter"}'
これにより、pubspec.yaml
ファイルに以下の依存関係が追加されます:
統合テストファイルの作成
次に、統合テスト用のディレクトリとファイルを作成します。
- プロジェクトのルートに
integration_test
というディレクトリを作成 - その中に
app_test.dart
というファイルを作成
counter_app/
lib/
main.dart
integration_test/
app_test.dart
統合テストの記述
app_test.dart
ファイルに以下のコードを追加します。このテストはカウンターアプリの基本的な機能をテストします。
このテストコードでは以下の 3 つのステップを行っています:
-
IntegrationTestWidgetsFlutterBinding
を初期化 -
WidgetTester
クラスを使ってウィジェットとの対話とテスト - テスト実行
統合テストの実行
統合テストは以下のようなプラットフォームで実行できます:
- デスクトッププラットフォーム(macOS、Windows、Linux)
- モバイルプラットフォーム(Android、iOS)
- Web ブラウザ
- Firebase Test Lab(Android、iOS)
今回は iOS 端末のみ検証します。
iOS デバイスでのテスト
iOS デバイスを接続し、以下のコマンドを実行します:
ターミナルコマンド
flutter test integration_test/app_test.dart
実行するとシュミレーターが起動し、ボタンをタップして自動的にテストを実行します。
画像のような出力結果が得られれば、テスト成功です。
ターミナルコマンド
flutter test integration_test
を実行すると、integration_test ディレクトリ内に存在するテストファイルをすべて実行します。
今回用いたコード
Discussion