User interface 如何验证交换机小部件';颤振试验中的状态?
是否有可以验证小部件状态的颤振匹配器?我可以使用User interface 如何验证交换机小部件';颤振试验中的状态?,user-interface,dart,flutter,User Interface,Dart,Flutter,是否有可以验证小部件状态的颤振匹配器?我可以使用find.byKey(myKey)按键查找小部件。因此,如果有一个匹配器,比如isToggled(state),我会通过在测试中编写如下内容来验证我的小部件的状态: expect(find.byKey(myKey), isToggled(true)) 有这样的媒人吗?如何验证切换状态?没有。但是你可以自己做,所以这里有一个: class _IsToggled extends CustomMatcher { _IsToggled(dynamic
find.byKey(myKey)
按键查找小部件。因此,如果有一个匹配器,比如isToggled(state)
,我会通过在测试中编写如下内容来验证我的小部件的状态:
expect(find.byKey(myKey), isToggled(true))
有这样的媒人吗?如何验证切换状态?没有。但是你可以自己做,所以这里有一个:
class _IsToggled extends CustomMatcher {
_IsToggled(dynamic matcher)
: super('Check if a switch if enabled or not', 'isToggled', matcher);
@override
Object featureValueOf(dynamic actual) {
final finder =actual as Finder;
final result = finder.evaluate().single as Switch;
return result.value;
}
}
Matcher isToggled(bool value) => _IsToggled(value);
您可以使用类的方法指定任何小部件的类型,并检查该类型的状态。因此,对于您的具体示例,您可以简单地执行以下操作:
final finder = find.byWidgetPredicate(
(widget) => widget is Switch && widget.key == myKey && widget.value == true,
description: 'Switch is enabled');
expect(finder, findsOneWidget);
小部件
试验
final Finder switchFinder=find.byKey(Key('widget_Key');
最终switchWdt=tester.widget(switchFinder);
expect(switchWdt.value,false);
如果可以,请使用有关用法的示例代码更新?对我来说学习这个技巧会更有帮助吗?这是最简单的答案!谢谢@stark
class SwitchWdt extends StatelessWidget {
bool isSwitched = false;
@override
Widget build(BuildContext context) {
return Switch(
key: Key('widget_key'),
value: isSwitched,
onChanged: (_){});
}
}
final Finder switchFinder = find.byKey(Key('widget_key'));
final switchWdt = tester.widget<Switch>(switchFinder);
expect(switchWdt.value, false);