如何检查 InputField 上的文本是否被遮挡
How check if text its obscured on InputField
我正在尝试测试密码是否被遮盖,这就是我的进展,但似乎 flutter 可以读取文本,即使它被遮盖了。
testWidgets('password must be hidden', (WidgetTester tester) async {
await tester.pumpWidget(wrapWithMaterialApp(child: page));
await tester.enterText(find.byKey(Key('pass')), '1234');
final passFinder = find.text('1234');
expect(passFinder, findsNothing);
});
测试实际上找到了“1234”,但我完全确定它被遮住了。
无论 obscureText
标志如何,输入的文本始终存储在内存中(此参数仅影响视觉表示)。在测试中我们只能检查这个 属性 如下:
testWidgets('TextField', (WidgetTester tester) async {
await tester.pumpWidget(MyApp());
final finder = find.byKey(Key('pass'));
final input = tester.firstWidget<TextField>(finder);
expect(input.obscureText, true);
});
我正在尝试测试密码是否被遮盖,这就是我的进展,但似乎 flutter 可以读取文本,即使它被遮盖了。
testWidgets('password must be hidden', (WidgetTester tester) async {
await tester.pumpWidget(wrapWithMaterialApp(child: page));
await tester.enterText(find.byKey(Key('pass')), '1234');
final passFinder = find.text('1234');
expect(passFinder, findsNothing);
});
测试实际上找到了“1234”,但我完全确定它被遮住了。
无论 obscureText
标志如何,输入的文本始终存储在内存中(此参数仅影响视觉表示)。在测试中我们只能检查这个 属性 如下:
testWidgets('TextField', (WidgetTester tester) async {
await tester.pumpWidget(MyApp());
final finder = find.byKey(Key('pass'));
final input = tester.firstWidget<TextField>(finder);
expect(input.obscureText, true);
});