проблема с этой командой: flutter run test/widget_test.dart

Сегодня я начал изучать тестирование из документации по флаттеру. все было хорошо, пока я не захотел посмотреть работу тестирования на эмуляторе.

Мой код:

testWidgets('tap, drag, and enter text', (WidgetTester tester) async {
    await tester.pumpWidget(TodoList());

    await tester.enterText(find.byType(TextField), 'hi');

    await tester.tap(find.byType(FloatingActionButton));

    await tester.pump();

    expect(find.text('hi'), findsOneWidget);

    await tester.drag(find.byType(Dismissible), Offset(500.0, 0.0));

    await tester.pumpAndSettle();

    expect(find.text('hi'), findsNothing);
  });

Я следил за документами, и все было в порядке, я использовал этот метод, и он отлично работает без ошибок. Но когда я хотел просмотреть тестирование на эмуляторе, я набрал эту команду в терминале flutter run test/widget_test.dart. Затем эмулятор начал просматривать результат, но остановился после того, как написал "привет" в TextField потом появилось это исключение.

If WidgetTester.takeException is called, the aboveexception will be ignored. If it is not, then the above 
exception will be dumped when another exception is caught by the framework or when the test ends, whichever happens first, and 
then the test will fail due to having not caught or expected the exception.)  

я много искал, потом нашел это решение:

expect(tester.takeException(), isInstanceOf<UnrecognizedTermException>());

Я добавил его в метод так:

testWidgets('tap, drag, and enter text', (WidgetTester tester) async {
    await tester.pumpWidget(TodoList());

    await tester.enterText(find.byType(TextField), 'hi');

    // added here
    expect(tester.takeException(), isInstanceOf<UnrecognizedTermException>());

    await tester.tap(find.byType(FloatingActionButton));

    await tester.pump();

    expect(find.text('hi'), findsOneWidget);

    await tester.drag(find.byType(Dismissible), Offset(500.0, 0.0));

    await tester.pumpAndSettle();

    expect(find.text('hi'), findsNothing);
  });

я добавил это в свой метод, но UnrecognizedTermExceptionсказал мне, что это не тип, поэтому его нельзя использовать в качестве аргумента типа.

Я хотел бы ясно продемонстрировать проблему, и буду благодарен всем, кто может помочь.

0 ответов

Другие вопросы по тегам