首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集成测试+ PumpAndSettle

集成测试+ PumpAndSettle
EN

Stack Overflow用户
提问于 2021-01-27 10:25:42
回答 1查看 1K关注 0票数 2

我有一个屏幕(比如屏幕B),它使用动画一秒钟,然后显示UI元素。动画结束后,我需要得到一个按钮,并按它。

这个屏幕是在特定屏幕(例如屏幕A)之后出现的。我已经成功地编写了集成测试(使用integration_test),现在出现了这个屏幕。现在是这样的情况-

  1. A有一个按钮,我点击该按钮并按下B屏幕。
  2. 现在需要等待1秒,然后向左显示当前视图,并出现一个有按钮的新视图。
  3. I执行了pumpAndSettle(秒数:1)
  4. ,在第4行代码之后,什么都不执行,测试直到超时。

< code >G 212

更多信息:

所以有一个屏幕(比如应用程序的主屏幕),我在上面显示“进度指示符”,直到我有可用的数据为止。

现在有一个屏幕被推到主屏幕的顶部(某种欢迎屏幕)上,用于一个新的应用程序安装。

在该屏幕欢迎屏幕,我有一个视图,我动画离开后,一秒,并显示欢迎项目与跳过按钮。

所以

代码语言:javascript
复制
[1] expect(welcomeScreen, findsOneWidget);

[2] await Future.delayed(Duration(seconds: 1));

[3] await tester.pumpAndSettle();

上面的代码行很好,但是如果我这样做了,

代码语言:javascript
复制
[2Alt] await tester.pumpAndSettle(Duration(seconds: 1))

这是无限期的。

进一步

有一个在1秒后出现的跳过按钮(在welcom屏幕上),我点击跳过按钮,它弹出欢迎屏幕,然后回到主屏幕,在那里“进度指示符”正在旋转,直到收到数据。

代码语言:javascript
复制
expect(skipButton, findsOneWidget);
await tester.tap(skipButton);
await tester.pumpAndSettle();

在这里,pumpAndSettle占用无限的时间(直到超时)

我不知道原因是什么。pumpAndSettle到底在做什么。如果我只抽水泵,它就能用

EN

回答 1

Stack Overflow用户

发布于 2022-09-08 12:38:45

试试这个泵直到你想要的东西出现..。

代码语言:javascript
复制
do await tester.pump(); while (
        tester.widgetList(find.byType(WhatYouNeedWidget)).isEmpty);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65917181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档