Класс 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 увеличит счётчик.
Смотрите также
-
функция
testWidgets,
даётWidgetTester -
класс
CommonFinders,
find для жестов -
функция
expect,
проверка послеpump -
константа
findsOneWidget,
матчер