Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振:如何在测试中访问/检查小部件的属性?_Flutter_Flutter Test - Fatal编程技术网

Flutter 颤振:如何在测试中访问/检查小部件的属性?

Flutter 颤振:如何在测试中访问/检查小部件的属性?,flutter,flutter-test,Flutter,Flutter Test,我想测试一些小部件的属性,但我没有找到简单的方法 下面是一个带有密码字段的简单示例,如何检查ObsureText是否设置为true 进口“包装:颤振/材料.省道”; 进口“包装:颤振试验/颤振试验.dart”; const darkBlue=Color.fromARGB(255,18,32,47); Future main()异步{ testWidgets('Wheelio徽标出现在登录屏幕上', (WidgetTester测试仪)异步{ 最终键_formKey=GlobalKey(); 最终

我想测试一些小部件的属性,但我没有找到简单的方法

下面是一个带有密码字段的简单示例,如何检查ObsureText是否设置为true


进口“包装:颤振/材料.省道”;
进口“包装:颤振试验/颤振试验.dart”;
const darkBlue=Color.fromARGB(255,18,32,47);
Future main()异步{
testWidgets('Wheelio徽标出现在登录屏幕上',
(WidgetTester测试仪)异步{
最终键_formKey=GlobalKey();
最终文本编辑控制器密码控制器=文本编辑控制器();
const Key _passwordKey=Key('PASSWORD_Key');
final Finder passwordField=find.byKey(_passwordKey);
等待测试仪泵井(材料PP(
主题:ThemeData.dark().copyWith(脚手架背景颜色:深蓝色),
debugShowCheckedModeBanner:false,
家:脚手架(
正文:中(
孩子:表格(
键:_formKey,
子项:TextFormField(
密钥:_passwordKey,
蒙昧文字:对,
控制器:密码控制器,
),
),
),
),
));
等待测试仪。泵();
expect(passwordField,findsOneWidget);
最终文本表单字段myPasswordWidget=
widget(passwordField)作为TextFormField;
//如何检查ObsureText属性是否设置为true?
});
}

您可以使用
tester
find
获取小部件树中的任何内容

例如,如果要测试
Text
是否将属性
textAlign
设置为
textAlign.center
,可以执行以下操作:

expect(
tester.widget(find.byType(Text)),
isA()。具有((t)=>t.textAlign,'textAlign',textAlign.center),
);

您可以使用
tester
find
获取小部件树中的任何内容

例如,如果要测试
Text
是否将属性
textAlign
设置为
textAlign.center
,可以执行以下操作:

expect(
tester.widget(find.byType(Text)),
isA()。具有((t)=>t.textAlign,'textAlign',textAlign.center),
);
共同发现者

平民


您可以通过Finder获取小部件

TabBar tabBar = find.byType(TabBar).evaluate().single.widget as TabBar

您可以通过Finder获取小部件

TabBar tabBar = find.byType(TabBar).evaluate().single.widget as TabBar
final passwordField=find.byKey(\u passwordKey);
最终输入=tester.firstWidget(密码字段);
输入
将是您的小部件,因此您现在可以进行检查

expect(input.obscureText,true)

final passwordField=find.byKey(\u passwordKey);
最终输入=tester.firstWidget(密码字段);
输入
将是您的小部件,因此您现在可以进行检查


expect(input.obscureText,true)

它正在使用textAlign,但使用ObstructText时,我有一个错误:没有为类“TextFormField”定义getter“ObstructText”。无论如何,您也可以进行黄金测试。它会更加健壮你的意思是测试更多而不仅仅是模糊文本?你会在黄金文件中存储什么?你可以为输入或屏幕创建黄金文件。它正在使用textAlign,但使用ObsureText我有一个错误:没有为类“TextFormField”定义getter“ObsureText”。你也可以只进行黄金测试。它会更加健壮你的意思是测试更多而不仅仅是模糊文本?你会在黄金文件中存储什么?你可以为输入或屏幕创建黄金文件。它工作得很好。我正在尝试使用GlobalKey和widget.builder来解决这个问题,它们允许访问ObsureText。它工作得非常好。我正在尝试使用GlobalKey和widget.builder来解决这个问题,它们允许访问ObsclerText。
TabBar tabBar = find.byType(TabBar).evaluate().single.widget as TabBar
final passwordField = find.byKey(_passwordKey);
final input = tester.firstWidget<TextFormField>(passwordField);