【发布时间】:2021-04-11 05:18:58
【问题描述】:
在我的集成测试中,我必须继续这样做:await tester.pumpAndSettle(const Duration(seconds: [some duration])); 在动画延迟后等待小部件加载到屏幕上,否则我会收到错误:“bad state: no element”。
这是处理此问题的最佳方法吗?我发现现在我正在尝试将集成测试添加到我的持续集成平台中,这非常不稳定。我不得不增加更多的时间来等待,这感觉很糟糕(竞争条件),并且由于构建时间需要更长的时间,也会增加持续集成的成本。下面是代码示例:
Future<void> registerUserPasswordButtonShouldBeDisabled() async {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
testWidgets('''registering a new user with non-unique email address disables
register password button''', (WidgetTester tester) async {
await app.main();
await tester.pumpAndSettle(const Duration(seconds: 5));
final registerButton = find.byKey(const Key('register'));
有没有更好的方法来处理由于动画延迟导致小部件在某些延迟之前不会出现在屏幕上的“错误状态:无元素”错误?
【问题讨论】:
标签: flutter integration-testing flutter-test