Ich habe es herausgefunden! Es hatte damit zu tun, dass in diesem Code:
%Vor%
SchedulerProvider
gab ein SchedulerProvider
zurück, das Folgendes ausgab: %code% . Da RxJava 2 keine %code% -Werte mehr akzeptiert, wurde %code% nicht aufgerufen. Ich habe %code% geändert, um %code% zurückzugeben, und die Scheduler-Überschreibung wie folgt aktualisiert:
%Vor%
Jetzt sind die Tests bestanden!
___ tag123rxjava ___ RxJava - Reaktive Erweiterungen für die JVM - eine Bibliothek zum Erstellen von asynchronen und ereignisbasierten Programmen mit beobachtbaren Sequenzen für die Java VM. Es kann unter https://github.com/ReactiveX/RxJava gefunden werden
___ qstntxt ___
Ich versuche den folgenden RxKotlin / RxJava 2-Code zu testen:
%Vor%
Ich versuche, die Scheduler wie folgt zu überschreiben:
%Vor%
Beim Ausführen des Tests wird jedoch der folgende Fehler angezeigt:
%Vor%
Hat jemand dieses Problem erlebt?
Der Test funktionierte einwandfrei, wenn RxKotlin / RxJava 1 verwendet wurde und der folgende Scheduler überschrieb:
%Vor%
Danke!
___ tag123rxkotlin ___ RxJava-Bindungen für die Kotlin-Programmiersprache
___ qstnhdr ___ RxJava 2 überschreibt den E / A-Scheduler im Komponententest
___ antwort43320828 ___
Ich schlage vor, dass Sie einen anderen Ansatz wählen und Ihren Schedulern eine Abstraktionsebene hinzufügen. Dieser Typ hat einen schönen Artikel darüber: Ссылка
Es würde ungefähr so in Kotlin aussehen
%Vor%
Und dann überschreiben Sie das mit Ihrer eigenen Implementierung von SchedulerProvider:
%Vor%
Und eins zum Testen von Klassen:
%Vor%
Ihr Code würde so aussehen, wo Sie RxJava aufrufen:
%Vor%
Und Sie überschreiben einfach Ihre Implementierung von %code% basierend darauf, wo Sie es testen. Hier ist ein Beispielprojekt als Referenz, ich verbinde die Testdatei, die die testbare Version von %code% verwenden würde: Ссылка