Fix menu_anchor_test.dart's state leak (#112718)

Merging on red to green the build.
diff --git a/packages/flutter/test/material/menu_anchor_test.dart b/packages/flutter/test/material/menu_anchor_test.dart
index c8249b0..2b16a89 100644
--- a/packages/flutter/test/material/menu_anchor_test.dart
+++ b/packages/flutter/test/material/menu_anchor_test.dart
@@ -16,6 +16,7 @@
   final List<TestMenu> opened = <TestMenu>[];
   final List<TestMenu> closed = <TestMenu>[];
   final GlobalKey menuItemKey = GlobalKey();
+  late Size defaultSize;
 
   void onPressed(TestMenu item) {
     selected.add(item);
@@ -33,6 +34,11 @@
     focusedMenu = primaryFocus?.debugLabel ?? primaryFocus?.toString();
   }
 
+  setUpAll(() {
+    final MediaQueryData mediaQueryData = MediaQueryData.fromWindow(TestWidgetsFlutterBinding.instance.window);
+    defaultSize = mediaQueryData.size;
+  });
+
   setUp(() {
     focusedMenu = null;
     selected.clear();
@@ -42,6 +48,13 @@
     focusedMenu = null;
   });
 
+  Future<void> changeSurfaceSize(WidgetTester tester, Size size) async {
+    await tester.binding.setSurfaceSize(size);
+    addTearDown(() async {
+      await tester.binding.setSurfaceSize(defaultSize);
+    });
+  }
+
   void listenForFocusChanges() {
     FocusManager.instance.addListener(handleFocusChange);
     addTearDown(() => FocusManager.instance.removeListener(handleFocusChange));
@@ -1059,16 +1072,13 @@
       opened.clear();
 
       const Size smallSize = Size(200, 200);
-      await tester.binding.setSurfaceSize(smallSize);
+      await changeSurfaceSize(tester, smallSize);
 
       await tester.pumpWidget(build(smallSize));
       await tester.pump();
 
       expect(opened, isEmpty);
       expect(closed, isNotEmpty);
-
-      // Reset binding when done.
-      await tester.binding.setSurfaceSize(mediaQueryData.size);
     });
   });
 
@@ -1408,7 +1418,7 @@
     }
 
     testWidgets('unconstrained menus show up in the right place in LTR', (WidgetTester tester) async {
-      await tester.binding.setSurfaceSize(const Size(800, 600));
+      await changeSurfaceSize(tester, const Size(800, 600));
       await tester.pumpWidget(
         MaterialApp(
           home: Material(
@@ -1446,7 +1456,7 @@
     });
 
     testWidgets('unconstrained menus show up in the right place in RTL', (WidgetTester tester) async {
-      await tester.binding.setSurfaceSize(const Size(800, 600));
+      await changeSurfaceSize(tester, const Size(800, 600));
       await tester.pumpWidget(
         MaterialApp(
           home: Directionality(
@@ -1487,7 +1497,7 @@
     });
 
     testWidgets('constrained menus show up in the right place in LTR', (WidgetTester tester) async {
-      await tester.binding.setSurfaceSize(const Size(300, 300));
+      await changeSurfaceSize(tester, const Size(300, 300));
       await tester.pumpWidget(
         MaterialApp(
           home: Builder(
@@ -1526,7 +1536,7 @@
     });
 
     testWidgets('constrained menus show up in the right place in RTL', (WidgetTester tester) async {
-      await tester.binding.setSurfaceSize(const Size(300, 300));
+      await changeSurfaceSize(tester, const Size(300, 300));
       await tester.pumpWidget(
         MaterialApp(
           home: Builder(