首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用MVVM进行Android用户界面测试

用MVVM进行Android用户界面测试
EN

Stack Overflow用户
提问于 2019-10-12 16:03:23
回答 1查看 973关注 0票数 2

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

所以,当我测试用espresso可以看到哪些视图时,我想等到updateUI()被调用。我无法轻松地模拟ViewModel,因为我使用的是Dagger 2,但除此之外,它是一个集成测试,我不想从一开始就这么做。

对于这一点,Thread.sleep()将是一个糟糕而天真的解决方案,因为等待时间太短会导致测试失败,过多的等待时间会导致宝贵时间的损失,而且它还取决于测试和网络环境!

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-12 17:57:02

经过更多的研究,我发现Espresso已经有了一个解决这个问题的方法,叫做闲置资源。

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

您可以在应用程序中使用它,方法是将它添加到您的Gradle文件中,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def espresso_version = '3.2.0' 

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

请注意,更新的Espresso版本可以在Google的Maven Repository上找到。

来自Google的样本

有关闲置资源的更多详细信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58359589

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文