Ich war süchtig nach Unit-Tests mit dem Pufferoperator in RxJava

Dieser Artikel ist grob.

Fazit

Ich hatte "Trampolin" in "RxJavaPlugins.set *** SchedulerHandler" gesetzt, aber nur "setIoSchedulerHandler".

RxJavaPlugins.setIoSchedulerHandler { Schedulers.trampoline() }

Warum

Ich habe eine Testregel wie diese geschrieben,

RxJavaPlugins.setIoSchedulerHandler { Schedulers.trampoline() }
RxJavaPlugins.setComputationSchedulerHandler { Schedulers.trampoline() }
...

Wenn der zu testende Code einen "Puffer" -Operator hat, verwendet der Pufferoperator intern den "Berechnungs" -Planer, sodass Sie beim Überschreiben des "Trampolin" -Planers unbegrenzt warten müssen. Der Test endet nie.

@Test
fun testBuffer() {
    val subject = PublishSubject.create<Int>()
    val testObserver = subject
        .buffer(1, TimeUnit.SECONDS)
        .filter { it.isNotEmpty() }
        .test()

    subject.onNext(1)
    subject.onNext(2)

    testObserver.await(2, TimeUnit.SECONDS)
    testObserver.assertValues(listOf(1, 2))
}

Recommended Posts

Ich war süchtig nach Unit-Tests mit dem Pufferoperator in RxJava
Ich war süchtig nach NoSuchMethodError in Cloud-Endpunkten
Was ich mit der Redmine REST API süchtig gemacht habe
Ich war süchtig nach der Rollmethode
Ich war süchtig nach dem Spring-Batch-Test
Eine Geschichte, die mich während des Komponententests von der impliziten Typkonvertierung von ActiveRecord abhängig machte
Eine Geschichte, der ich beim Testen der API mit MockMVC verfallen war
Probleme, denen ich beim Erstellen der Digdag-Umgebung mit Docker verfallen war
Ich war süchtig danach, onActivityResult () mit DialogFragment zu machen
SpringSecurity Ich war süchtig danach, mich mit einem Hash-Passwort anzumelden (gelöst)
Ich war süchtig nach der Aufzeichnung des zugehörigen Modells
Der Teil, dem ich in "Einführung in Ajax in Java-Webanwendungen" von NetBeans verfallen war
Wovon ich bei der Einführung der JNI-Bibliothek süchtig war
Ich war süchtig danach, default_url_options mit der Einführung von Rails zu setzen
Ich war süchtig danach, die Update-Anweisung in MyBatis zu wiederholen
Ich war süchtig nach Laradock + VSCode + xdebug
Ich war seltsamerweise süchtig danach, Javas Stream-API mit Scala zu verwenden
Die Geschichte, nach der ich beim Einrichten von STS süchtig war
Ich war süchtig danach, sbt zu starten
Wovon ich süchtig war, als ich die Google-Authentifizierung mit Rails implementierte
Über die Sache, dass ich süchtig danach war, wie man Hashmap benutzt
[Java] Ich möchte mit dem Schlüssel im Objekt eindeutig arbeiten
Ich war süchtig nach der API-Version min23 von registerTorchCallback
Technische Ursachen und Gegenmaßnahmen für die Punkte, denen ich mit der ersten Android-App und Kotlin verfallen war
Memorandum: Wovon ich süchtig war, als ich auf die Accounting Freee API traf
[Rails] Ich war süchtig nach den Nginx-Einstellungen, als ich Action Cable verwendete.
Aufgenommen, weil ich süchtig nach der Standardeingabe der Scannerklasse war
Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby mit Wiederholung zu lösen.
Ich war süchtig nach Scrollview, weil ich nicht auf die UIView mit variabler Größe tippen konnte
Eine Geschichte, der ich mit der automatischen Starteinstellung von Tomcat 8 unter CentOS 8 zweimal verfallen war
Ich war süchtig nach RXTX mit Sierra
Zuordnung zu mehreren Variablen mit dem ternären Operator
Ich habe versucht, die Sitzung in Rails zu organisieren
Ich war süchtig danach, vom Docker-Container aus keine Verbindung zu AWS-S3 herstellen zu können
Ich war ein wenig süchtig nach dem S3-Prüfsummenvergleich, machen Sie sich also eine Notiz.
Ich möchte den Wert in Ruby erhalten
Wovon ich süchtig war, als ich eine Spring Boot-Anwendung mit VS Code entwickelte
Beachten Sie, dass ich süchtig nach Stapelverarbeitung mit Spring Boot war
Ich möchte den Pfad nach der neuen Registrierung ändern, nachdem ich mich mit mehreren Geräten angemeldet habe.
Beachten Sie, dass ich von den Einstellungen des Android-Projekts von IntelliJ IDEA abhängig war
Ich möchte eine TraceId in das Protokoll einbetten
Tokoro habe ich in der Migration von Wicket 7 auf 8 umgeschrieben
Ich möchte den Dunkelmodus mit der SWT-App verwenden
Organisierte schrittweise Interaktion mit dem JDK
Süchtig nach dem Webpacker, der standardmäßig mit Rails 6 geliefert wird
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
Als ich versuchte, mit JScrollBar automatisch zu scrollen, wurde der Ereignishandler nur einmal gezeichnet.
Ich möchte den Inhalt von Assets in der mit capistrano erstellten Umgebung von Grund auf neu erstellen
Ich war süchtig nach WSl, als ich versuchte, mit Vue.js eine Entwicklungsumgebung für Android-Anwendungen zu erstellen
Was ich beim Update auf Spring Boot 1.5.12 behoben habe ・ Wovon ich süchtig war
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit spiritueller Technik zu erhöhen
Technische Ursachen und Gegenmaßnahmen für Punkte, denen ich mit der Android-App und Kotlin verfallen war (2. Verarbeitung im Zusammenhang mit der Kamerafunktion von Android *)
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich war verwirrt, weil es eine Aufteilung im Array gab