0
我有一个服务器调用是使用Retrofit + RxJava进行的,我想在屏幕上测试它的行为。Android Espresso正在等待可观察的rxjava .delay
目标是在执行调用之前设置加载图像,并在获得结果后隐藏加载图像并显示数据。
我试图使用Observable类中的“delay”方法设置模拟,所以Espresso可以找到图像。这是我使用的代码:
Observable<AccountDetails> observable = Observable.just(details)
.delay(5, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io());
doReturn(observable).when(mScope).requestAccounts();
performServerCall();
onView(withId(R.id.panel_loading)).check(matches(isDisplayed()));
运行测试后,我意识到,咖啡实际上是在等待延迟可观察到的设置,实际执行检查(isDisplayed)前。这样它只会在信息加载和加载图像消失后才会检查。
这是RxJava/Espresso的正常行为吗?
有没有更好的方法来实现这一目标?
你是对的,我不愿意接受这是一个动画问题,因为我有一些其他的测试搞乱了结果,但最终它变成了动画。在我的情况下,当应用程序在调试模式下运行时,我禁用了所有的动画。 –