Open masal9pse opened 1 year ago
go_routerを導入後、tester.runAsyncを削除して失敗させるようなテストを記載してもなぜかテストが通ってしまう。 下記コードは詳細画面に遷移するのに、トップページのタイトルをチェックしてもテストがパスしてしまう。 https://github.com/masal9pse/flutter_search_repository_app/commit/b1a7321746b415f3dd52e5fc8d6b6ae2881fd54e
testWidgets('項目をタップすると、詳細画面に遷移すること',
(WidgetTester tester) async {
await tester.runAsync(
() async {
await tester.pumpWidget(
ProviderScope(
overrides: [
searchApiRepositoryProvider.overrideWithValue(
SearchFakeApiRepository(),
),
],
child: testMainViewWidget(),
),
);
await tester.enterText(
find.byKey(AppKeyName.topPageSearchTextField),
searchWord,
);
await tester.tap(
find.byKey(AppKeyName.searchElevatedButton),
);
await tester.pumpAndSettle();
await tester.tap(
find.byKey(AppKeyName.responseDetailCard(0)),
);
await tester.pumpAndSettle();
expect(find.text(PageInfoEnum.show.title), findsOneWidget);
// 追加 なぜかパスしてしまう。
expect(find.text(PageInfoEnum.top.title), findsOneWidget);
},
);
一旦、Navigator.pushとpopで対応する。 2回目の提出では、go_routerは導入しないようにする
後ほど下記参照してテストをパスさせたい https://guillaume.bernos.dev/testing-go-router/
初期は、Navigator.push、popを使用した画面遷移を利用していました。 が、その後Laravelのような宣言的な画面遷移に慣れていたのでそのやり方にしようと思い導入しました。
https://github.com/K9i-0/flutter_k9i_portfolio/blob/main/lib/router.dart
改善点
Navigator2.0を導入すればいけるはず?
結論
go_routerを導入したが、この問題は解決せず。