我有一个片段,在加载时应该显示一个加载微调器,它会消失一次,然后在网络请求完成时填充字段。为了测试,我可以模拟请求。
在每种情况下,它都非常快,您通常不会看到加载微调器。 Espresso是否可以测试此视图是否首先显示?即使它消失得如此之快?
我有什么选择可以将负载延迟足够长的时间以使其可测试? (框架中是否有一些东西,而不是睡眠线程?)
这是我目前测试的结果:
android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: 'is displayed on the screen to the user' doesn't match the selected view.
Expected: is displayed on the screen to the user
Got: "AppCompatImageView{id=2131624534, res-name=loading_spinner, visibility=GONE, width=126, height=126, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=true, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=477.0, y=383.0}"
答案 0 :(得分:2)
您必须禁用加载器动画或espresso将等待它们完成才能继续测试。
您可以使用普通视图替换进度条视图以进行测试: https://blog.entwicklerbier.org/2015/05/test-your-ui-on-android-with-espresso-damn-you-progressbar/
或者您可以更改进度条drawable:
ProgressBars and Espresso 要么 Testing progress bar on Android with Espresso
也许你应该像你说的那样延迟负荷。