Hat jemand Glück gehabt, Komponententests für AsyncTaskLoaders in Robolectric zu schreiben? Ich habe versucht, eine modifizierte Version dieser example for AsyncTask, aber es zeigt nicht das gleiche Verhalten. Insbesondere wird onLoadFinished
nie aufgerufen. Gibt es praktikable Beispiele zum Testen von Loadern mit Robolectric?AsyncTaskLoaders mit Robolectric testen
Antwort
Verwenden Sie keine Loader. Sie sind nicht einfach zu testen und sie sind eng mit den Fragmenten und Aktivitäten verbunden, die sie verwenden. Verwenden Sie stattdessen RxJava Observables für Ihre asynchronen Datenflüsse. Sie können die Planung entkoppeln und sie in Ihren Komponententests synchron testen. Es ist viel sauberer und viel einfacher.
Haben Sie Beispiele zum Teilen? Ich suche speziell nach dem "entkoppelnden Scheduler" -Teil. Machen Sie etwas anders in Ihrem Code, wenn Sie einen gemeinsamen Scheduler abonnieren? Oder gibt es eine raffinierte Methode, die Rxjava anweist, alles in einem bestimmten Thread auszuführen? –
Ich übergebe eine SchedulerFactory an die Klassen, die es benötigen, und in der Produktion gebe ich die asynchronen Scheduler (io, newThread usw.) für ihre jeweiligen Aufrufe in den Factory-Methoden zurück, während in Unit-Tests alle Aufrufe den aktuellen Thread zurückliefern die Anrufe. Sie können einen Scheduler an eine Observable übergeben. –
Ich habe gerade gebucht einen Weg Ich habe es in diesem Stapel Ticket zu arbeiten: Testing a CursorLoader with Robolectric & Mockito
Es geht um ein paar zusätzliche Schatten Klassen zu schreiben. Ich kann den Fix hier einfügen, wenn ich darum gebeten werde, aber ich war nicht sicher, was die Konvention für eine doppelte Antwort war.
- 1. Testen von DialogFragments mit Robolectric
- 2. Testen der Anwendungsklasse mit Robolectric?
- 3. Testen von ActiveAndroid mit Robolectric
- 4. Testen von okHttp-Anfragen mit Robolectric - Callbacks
- 5. Testen eines CursorLoader mit Robolectric & Mockito
- 6. Testen einer Android-Bibliothek mit Robolectric
- 7. Robolectric (Android): Testen von Ereignissen?
- 8. Mocking SQLite-Datenbank beim Testen Aktivität mit Robolectric
- 9. Probleme beim Testen von RadioGroup mit RoboGuice + Robolectric
- 10. Testen von Ansichten eines Fragments mit Robolectric 3.0
- 11. Konfigurationsänderung Robolectric mit
- 12. Kann (sollte) robolectric verwendet werden, um Intent Filter zu testen
- 13. Fehler bei der Verwendung von Robolectric zum Testen einer ActionBarActivity
- 14. Robolectric: Testen einer Aktivität, erwartet Extras (Version 2.X)
- 15. Robolectric 3.0, konnte keine Funktion testen, die eine HandlerThread beginnt
- 16. Robolectric Sensor Ereignissimulation
- 17. Testresourcenordner mit Robolectric und Gradle
- 18. Bibliotheksressourcen mit Robolectric 3 - JodaTime
- 19. Robolectric app testing mit Firebase
- 20. ExceptionInInitializerError mit PowerMock und Robolectric
- 21. Robolectric zur Arbeit mit Volley
- 22. Robolectric ContentProvider testing
- 23. Robolectric + Maven
- 24. Robolectric ohne Testanwendung
- 25. Komponententest Realm + Dolch 2 mit Robolectric & Mockito
- 26. Testen von Async-Tasks mit Robectric
- 27. Verwenden Sie Robolectric, um den Start eines Dienstes mit Extras zu testen?
- 28. Testen von benutzerdefinierten Ansichten mit Robolectric: Breite und Höhe sind immer 0
- 29. Unit Testing RecyclerView OnItemTouchListener Robolectric
- 30. Android Unit Test mit Retrofit2 und Mockito oder Robolectric
Haben Sie eine Lösung gefunden? – Kuno
Leider nicht. –