Testing a DropdownButton

It is quite difficult to write UI tests for a DropdownButton. Thanks to this StackOverflow post, I was able to extract a minimal test. Here's the snippet:

imports...
  
void main() {
  testWidgets(
      'Selects a civilization',
      (WidgetTester tester) async {
    final picker = CivilizationPicker(...);
    await tester.pumpWidget(MaterialApp(home: Scaffold(body: picker)));

    // Opens the dropdown.
    await tester.tap(find.byType(CivilizationPicker));
    await tester.pump();

    // It is open, even though the list of options doesn't appear in the screenshot.
    await expectLater(
      find.byType(MaterialApp),
      matchesGoldenFile('goldens/create_build_2_select_civ.png'),
    );

    // Only when the list of options is open do we find 2 widgets for each option.
    expect(find.textContaining('Abbasid'), findsNWidgets(2));
    // Gotta tap the last of the two items to select the option.
    await tester.tap(find.textContaining('Abbasid', skipOffstage: false).last);
    await tester.pump();

    await expectLater(
      find.byType(MaterialApp),
      matchesGoldenFile('goldens/create_build_3_selected_civ.png'),
    );
  });
}