保持 Compose UI 测试等待,而不会冻结线程

Keep Compose UI test waiting without freezing thread

提问人:AShX 提问时间:11/18/2022 更新时间:11/18/2022 访问量:677

问:

这是否可能在测试期间等待 N 时间,而不会冻结主线程。我正在测试 Compose 应用程序,但不确定该怎么做。 现在我使用:

Thread.sleep(超时Ms:Long)

但是应用程序只是冻结并且没有显示传入的数据,因为它是为 Wear OS 撰写的,所以我无法验证显示值是如何变化的。
在这种情况下,有没有办法执行某种延迟?

提前致谢。

Android android-jetpack-compose android GUI 测试

评论

0赞 Gabriele Mariotti 11/18/2022
等待的最终目标是什么?
0赞 AShX 11/18/2022
@GabrieleMariotti主要思想是从心率中收集数据,等待几分钟,收集数据并将其传递到下一个屏幕。为了在模拟器上使用,我编写了生成虚假“心跳值”的自定义心脏传感器,我想读取生成的值,然后将其与统计数据中的值(如平均值、最小值、最佳值、最大值等)进行比较
0赞 Gabriele Mariotti 11/18/2022
如果传感器被嘲笑,你为什么要等待?

答:

2赞 Andrew 11/18/2022 #1

不确定我是否完全理解这一点,但我认为您应该更多地研究 kotlin 协程和流程。

协程可以达到你所寻求的效果,并且作为内部支持必然会很好地组合在一起。

我无法完全回答您的问题,因为您没有显示任何要处理的代码片段,但是使用协程和流,您可以创建一个流,等待任意数量的秒数,并在等待完成后向流中发出一个值。

可以使用该方法在 Compose 中侦听流。collectAsState