gpt4 book ai didi

java - 使用 MVVM 进行 Android UI 测试

转载 作者:行者123 更新时间:2023-11-30 10:00:03 25 4
gpt4 key购买 nike

我在我的应用程序中使用 MVVM 架构和 Dagger 2。我有一个从服务器获取数据的存储库,当检索到数据时,ViewModel 会通知 LiveData 观察器,它会从我的 Activity 调用 updateUI() 方法。

因此,当我测试哪些 View 在 espresso 中可见时,我想等到 updateUI() 被调用。我不能轻易模拟 ViewModel,因为我使用的是 Dagger 2,但除此之外,因为它是一个集成测试,我一开始不想这样做。

Thread.sleep() 将是一个糟糕而幼稚的解决方案,因为等待时间太少会导致测试失败,太多会导致宝贵时间的损失和还要看测试和网络环境!

那么我们在这里做什么,这个问题的最佳解决方案是什么?

最佳答案

经过更多的研究,我发现 Espresso 已经有一个解决这个问题的方法,称为空闲资源。

您可以从下面的列表中选择合适的空闲资源实现,将其集成到您的应用中。

您可以像这样将它添加到您的 Gradle 文件中,开始在您的应用中使用它:

def espresso_version = '3.2.0' 

androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version"
implementation "androidx.test.espresso:espresso-idling-resource:$espresso_version"

请注意,可以在 Google's Maven Repository

找到更新的 Espresso 版本

Sample from Google

More details on idling resources

关于java - 使用 MVVM 进行 Android UI 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58359589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com