Retrofit + RxJavaでサーバーの呼び出しを行いました。画面上の動作をテストしたいのですが。Androidのエスプレッソは観測可能からrxjava .delayを待っています
目的は、呼び出しを実行する前にロードイメージを設定し、結果を取得した後、読み込み中のイメージを非表示にしてデータを表示することです。
Observableクラスの "delay"メソッドを使ってモックをセットアップしようとしました。エスプレッソはイメージを見つけることができます。それは私が使用したコードです:
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の通常の動作ですか?
もっと良い方法がありますか?
アニメーションの問題であることを受け入れることに消極的でしたが、他のいくつかのテストでは結果が乱雑でしたが、結局はアニメーションになることが判明しました。私の場合、私は、アプリケーションがデバッグモードで実行されているときにすべてのアニメーションを無効にしました。 –