Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
972 of 1024 menu
◀ ▶

Класс WidgetTester

Класс WidgetTester передаётся в testWidgets. Через него вызывают pumpWidget, tap и drag.

Методы

МетодОписание
pumpWidgetМонтирует корневой виджет.
pumpПродвигает один кадр.
pumpAndSettleКрутит кадры до покоя.
tapКороткое нажатие.
longPressДолгое нажатие.
dragПеретаскивание.
enterTextВвод в TextField.
ensureVisibleПрокрутка к Finder.

Пример

Давайте смонтировать Demo через pumpWidget:

import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; class Demo extends StatelessWidget { const Demo({super.key}); @override Widget build(BuildContext context) => const Scaffold(body: Center(child: Text('abcde'))); } void main() { testWidgets('pump', (tester) async { await tester.pumpWidget(const Demo()); expect(find.text('abcde'), findsOneWidget); }); }

WidgetTester покажет текст abcde.

Пример

Давайте нажать кнопку tap:

import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { testWidgets('tap', (tester) async { var n = 0; await tester.pumpWidget(MaterialApp(home: Scaffold(body: Center(child: ElevatedButton(onPressed: () => n++, child: const Text('abcde')))))); await tester.tap(find.text('abcde')); await tester.pump(); expect(n, 1); }); }

tap увеличит счётчик.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить