小部件测试 TextFormField 模糊文本值

Luk*_*uke 4 flutter-test flutter-textformfield

我似乎无法找到一种方法来小部件测试 TextFormField 是否将 obliqueText 设置为 true 或 false。

我知道 TextFormField 是 TextField 的包装器,而 obliqueText 是 TextField 的属性,但无法想出在我的测试中访问 obliqueText 的方法。

因此,当我尝试访问 obscureText 时,我收到消息: The getter 'obscureText' isn't Defined for the type 'TextFormField'

有人知道如何测试 TextFormField 的 obliqueText 属性吗?

  testWidgets(
    'show and hide password fields',
    (
      WidgetTester tester,
    ) async {
      await tester.pumpWidget(
        materialWrapper(
          child: emailSignUpScreen,
        ),
      );
      final Finder passwordTextFormField = find.byKey(
        const Key(
          'passwordTextFormField',
        ),
      );
      final TextFormField input =
          tester.widget<TextFormField>(passwordTextFormField);
      expect(input.obscureText, true);
    },
  );
Run Code Online (Sandbox Code Playgroud)

Tom*_*ski 8

TextFormField用来EditableText掩盖它,你可以这样做:

final passwordTextFormField = find.descendant(
  of: find.byKey(const Key('passwordTextFormField')),
  matching: find.byType(EditableText),
);
final input = tester.widget<EditableText>(passwordTextFormField);
expect(input.obscureText, isTrue);

Run Code Online (Sandbox Code Playgroud)