首页 > 解决方案 > 使用小部件测试在滑块中选择值

问题描述

我有一个包含一系列滑块的屏幕,用户可以在其中选择是否同意/不同意某些内容,例如:

Slider(
  key: Key(questionId),
  min: 0,
  max: 5,
  divisions: 5,
  value: _value,
  onChanged: (value) {
     setState(() {
       _value = value;
     });
  },
),

我目前正在使用 实现 UI 测试testWidgets,其中用户在 Sliders 中选择多个值,然后在用户单击按钮时存储,我希望能够选择一个值,例如,滑动滑块值'2'。

我怎样才能做到这一点?

我唯一的想法是使用tapAt滑块中值所在的确切像素坐标,但看起来非常复杂。

为了澄清起见,我在询问小部件测试,如:https ://flutter.dev/docs/cookbook/testing/widget/introduction

标签: flutterflutter-test

解决方案


可能不再需要它,但由于这是我自己寻找答案时发现的唯一相关问题,所以这是我的解决方案:

WidgetTester 具有“drag/dragFrom/dragUntilVisible”功能:

await tester.drag(find.byType(Slider), Offset(100, 0));

这将拖动滑块:)


推荐阅读