Я воссоздал ваш случай и смог проверить встроенное сообщение об ошибке. Идея состоит в том, чтобы добавить задержку в 1 секунду, прежде чем мы сможем проверить утверждение. Вот что я сделал:
main.dart
код для отображения textformfield
и проверка электронной почты при нажатии кнопки Send
:
TextFormField(
decoration: new InputDecoration(hintText: 'Email ID'),
keyboardType: TextInputType.emailAddress,
maxLength: 32,
validator: validateEmail,
onSaved: (String val) {
email = val;
}),
validateEmail
фрагмент метода:
if (value.length == 0) {
return "Email is Required";
} else if(!regExp.hasMatch(value)){
return "Invalid Email";
}else {
return null;
}
Проверка виджета для проверки встроенного сообщения об ошибке для поля электронной почты:
void main() {
testWidgets('validate email inline error message',
(WidgetTester tester) async {
await tester.pumpWidget(MyApp());
final buttonFinder = find.text('Send');
final emailErrorFinder = find.text('Email is Required');
await tester.tap(buttonFinder);
print('button tapped');
await tester.pump(const Duration(milliseconds: 100)); // add delay
expect(emailErrorFinder, findsOneWidget);
print('validated email inline error');
});
}
Результат теста:
Надеждаэто отвечает на ваш вопрос.