fix test case issue
diff --git a/packages/flutter/test/widgets/routes_test.dart b/packages/flutter/test/widgets/routes_test.dart index 966d717..f6c9d11 100644 --- a/packages/flutter/test/widgets/routes_test.dart +++ b/packages/flutter/test/widgets/routes_test.dart
@@ -2702,6 +2702,8 @@ }); testWidgets('ModalRoute sets hitTestBehavior.opaque on modal scope', (WidgetTester tester) async { + final SemanticsTester semantics = SemanticsTester(tester); + await tester.pumpWidget( MaterialApp( home: Builder( @@ -2727,14 +2729,18 @@ final Iterable<Semantics> semanticsWidgets = tester.widgetList<Semantics>(find.byType(Semantics)); - final Semantics modalScopeSemantics = semanticsWidgets.firstWhere( - (Semantics widget) => - (widget.properties.scopesRoute ?? false) && - widget.properties.hitTestBehavior != null, - ); + bool found = false; + for (final Semantics widget in semanticsWidgets) { + if (widget.properties.hitTestBehavior == SemanticsHitTestBehavior.opaque) { + expect(widget.properties.hitTestBehavior, SemanticsHitTestBehavior.opaque); + found = true; + break; + } + } - expect(modalScopeSemantics.properties.scopesRoute, isTrue); - expect(modalScopeSemantics.properties.hitTestBehavior, SemanticsHitTestBehavior.opaque); + expect(found, isTrue, reason: 'No Semantics widget with hitTestBehavior.opaque found'); + + semantics.dispose(); }); testWidgets('RawDialogRoute is state restorable', (WidgetTester tester) async {