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的正常行爲嗎?
有沒有更好的方法來實現這一目標?
你是對的,我不願意接受這是一個動畫問題,因爲我有一些其他的測試搞亂了結果,但最終它變成了動畫。在我的情況下,當應用程序在調試模式下運行時,我禁用了所有的動畫。 –