如何在 Flutter 中测试 LongPressDraggable
How to test a LongPressDraggable in Flutter
我想在 Flutter 中测试 LongPressDraggable。
WidgetTester 提供类似 longPress 的方法或几种拖动方法。
但是没有“longPressDrag”或类似的东西。
第一个想法是 运行 长按和拖动。但是在长按之后,小部件测试器没有按住小部件,我无法拖动它。
await tester.longPress(from);
await tester.timedDrag(from, offset, Duration(milliseconds: time));
解决方法是使用 timedDrag 并且 运行 它超级慢。
这可行,但需要很多时间。
await tester.timedDrag(from, offset, Duration(seconds: 15));
是否有正确的方法来测试小部件?
使用startGesture
方法开始你自己的手势。 “手指被按下”,直到您调用 geseture.up()
。在开始和向上之间使用 gesture.moveTo
移动光标和 tester.pump(duration)
停留在某个位置以触发 long-press.
示例代码来自 draggable_test.dart
中的 flutter repo
final Offset firstLocation = tester.getCenter(find.text('Source'));
final TestGesture gesture = await tester.startGesture(firstLocation, pointer: 7);
await tester.pump();
expect(targetMoveCount['Target 1'], equals(0));
expect(targetMoveCount['Target 2'], equals(0));
final Offset secondLocation = tester.getCenter(find.text('Target 1'));
await gesture.moveTo(secondLocation);
await tester.pump();
expect(targetMoveCount['Target 1'], equals(1));
expect(targetMoveCount['Target 2'], equals(0));
final Offset thirdLocation = tester.getCenter(find.text('Target 2'));
await gesture.moveTo(thirdLocation);
await tester.pump();
expect(targetMoveCount['Target 1'], equals(1));
expect(targetMoveCount['Target 2'], equals(1));
await gesture.moveTo(secondLocation);
await tester.pump();
expect(targetMoveCount['Target 1'], equals(2));
expect(targetMoveCount['Target 2'], equals(1));
await gesture.up();
await tester.pump();
我想在 Flutter 中测试 LongPressDraggable。 WidgetTester 提供类似 longPress 的方法或几种拖动方法。 但是没有“longPressDrag”或类似的东西。 第一个想法是 运行 长按和拖动。但是在长按之后,小部件测试器没有按住小部件,我无法拖动它。
await tester.longPress(from);
await tester.timedDrag(from, offset, Duration(milliseconds: time));
解决方法是使用 timedDrag 并且 运行 它超级慢。 这可行,但需要很多时间。
await tester.timedDrag(from, offset, Duration(seconds: 15));
是否有正确的方法来测试小部件?
使用startGesture
方法开始你自己的手势。 “手指被按下”,直到您调用 geseture.up()
。在开始和向上之间使用 gesture.moveTo
移动光标和 tester.pump(duration)
停留在某个位置以触发 long-press.
示例代码来自 draggable_test.dart
中的 flutter repo final Offset firstLocation = tester.getCenter(find.text('Source'));
final TestGesture gesture = await tester.startGesture(firstLocation, pointer: 7);
await tester.pump();
expect(targetMoveCount['Target 1'], equals(0));
expect(targetMoveCount['Target 2'], equals(0));
final Offset secondLocation = tester.getCenter(find.text('Target 1'));
await gesture.moveTo(secondLocation);
await tester.pump();
expect(targetMoveCount['Target 1'], equals(1));
expect(targetMoveCount['Target 2'], equals(0));
final Offset thirdLocation = tester.getCenter(find.text('Target 2'));
await gesture.moveTo(thirdLocation);
await tester.pump();
expect(targetMoveCount['Target 1'], equals(1));
expect(targetMoveCount['Target 2'], equals(1));
await gesture.moveTo(secondLocation);
await tester.pump();
expect(targetMoveCount['Target 1'], equals(2));
expect(targetMoveCount['Target 2'], equals(1));
await gesture.up();
await tester.pump();