Flutter试验:在另一个微件中查找微件

8iwquhpp  于 2023-03-04  发布在  Flutter
关注(0)|答案(2)|浏览(126)

我正在寻找一种方法来查看我在测试中找到的小部件,里面有特定的文本。在我的例子中,我想寻找特定的文本,而不是在完整的RadioButtonGroup中,而是在找到的ElevatedButton--〉firstButton中。这可能吗?

testWidgets('Horizontal Radio Group builds a Row', (tester) async {
    await tester.pumpWidget(
        Directionality(
            textDirection: TextDirection.ltr,
            child: simpleRadio
        ));

    expect(find.byType(Row), findsOneWidget);
    expect(find.byType(Column), findsNothing);
    var optionButtons = find.byType(ElevatedButton);
    expect(optionButtons, findsNWidgets(2));
    ElevatedButton firstButton = tester.firstWidget(optionButtons);
    
  });

查找类似以下内容:expect(firstButton.findByText('bla'), findsOneWidget);

mnemlml8

mnemlml81#

我认为您要查找的是widgetWithText,它将查找widgetType的一个小部件,该小部件具有包含给定文本的Text后代。
以你为例,比如:

expect(find.widgetWithText(ElevatedButton, 'bla'), findsOneWidget);
7kqas0il

7kqas0il2#

可以使用Finder#descendant,在其文档中举例说明

expect(find.descendant(
            of: find.widgetWithText(Row, 'label_1'),
            matching: find.text('value_1')), findsOneWidget);

相关问题