■テストの運用
-
テストはカバレッジ(網羅率)70-80%目安。
->100にしようとしたら、変更のたびにテストへ割く時間、修正が多く発生し、工数がかかる -
Lintはコーディング規約を満たすかのチェック
-> analysis_options.yaml で定義
■設定
プロジェクト作成時に生成されたwidget_test.dartを指定
Runボタンを押すと実行される
dart widget_test.dart
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:test01/main.dart';// package:自分のプロジェクト名/main.dart
void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
// pumpWidgetは画面フレームを生成し、UIの更新、状態変化を確認
// 利用場面は以下
// ・ユーザーインタラクション後
// ・アニメーション、画面遷移など、時間に基づく変更時
// ・データバインディング当で状態変更の発生時
await tester.pumpWidget(const MyApp());
// 画面上に期待するの要素が存在するかを確認
// 期待値:0が1つ表示、1が1つも表示されない
expect(find.text('0'), findsOneWidget);
expect(find.text('1'), findsNothing);
// ユーザー操作を実行(+アイコンタップ)
await tester.tap(find.byIcon(Icons.add));
await tester.pump();
// 画面上に期待するの要素が存在するかを確認
// 期待値:0が1つも表示されず、1が1つ表示
expect(find.text('0'), findsNothing);
expect(find.text('1'), findsOneWidget);
});
}