如何在颤振测试中验证 Switch 小部件的状态?

Ant*_*hyn 2 user-interface dart flutter

是否有可以验证Switch小部件状态的颤动匹配器?我可以使用find.byKey(myKey). 因此,如果有像这样的匹配器isToggled(state),我会通过在我的测试中编写如下内容来验证我的小部件的状态:

expect(find.byKey(myKey), isToggled(true))
Run Code Online (Sandbox Code Playgroud)

有这样的匹配器吗?如何验证切换状态?

Ada*_*per 5

您可以使用CommonFinders类的byWidgetPredicate方法来指定任何小部件的类型,从而检查该类型的状态。因此,对于您的具体示例,您可以简单地执行以下操作:

final finder = find.byWidgetPredicate(
  (widget) => widget is Switch && widget.key == myKey && widget.value == true,
  description: 'Switch is enabled');

expect(finder, findsOneWidget);
Run Code Online (Sandbox Code Playgroud)