Ich habe einige Anfragen, die ich mit Android Volley mache. Da die Zuhörer Dinge tun, wie den Antwort-JSON in Objekte zu verwandeln, möchte ich sie testen, um sicherzustellen, dass sie das Richtige tun. Die Sache ist, ich bin nicht sehr darin versunken, wie man Komponententests durchführt. Ich habe Robolectric mit JUnit eingerichtet, aber jede Hilfe wäre willkommen. Wie würde ich meinen Test einrichten, damit ich das Listener-Objekt testen kann, das an die Anfrage übergeben wurde?Android-Volley, wie Einheit Test bestanden Listener
Antwort
Es ist genug, um CacheDispatcher aussehen:
Response<?> response = request.parseNetworkResponse(
new NetworkResponse(entry.data, entry.responseHeaders));
Dies ist, wo die Antwort der Anfrage erstellt wird, abstrakte parseNetworkResponse-Methode (im Fall, dass Sie es umgesetzt haben), und dann:
mDelivery.postResponse(request, response);
, die tatsächlich die Listener auslöst, wenn Sie in den Code graben. Der Rest des Materials ist threadbezogen. Ich würde empfehlen, einfache Testroutinen zu implementieren, die statische NetworkResponse verwenden und mDeliverys postResponse aufrufen.
Dies bedeutet auch, dass Sie möglicherweise nicht diesen Weg gehen können - es ist genug zu testen, welche Methode (Response.success oder Response.error) aufgerufen wurde - das ist Ihr erster Komponententest. Zweitens, testen Sie einfach Ihre Zuhörer.
Ich habe vergessen, es zu sagen, aber es ist nicht notwendig zu testen, dass Listener oder errorListener im Falle der richtigen Verwendung der Response.success/error-Methoden aufgerufen wurden, gemäß Unit-Test-Prinzipien. Unit-Tests des Volley-Moduls selbst sollten diese Arbeit machen. –
- 1. freistehende Einheit bestehen bleiben bestanden: Profil
- 2. Wie wird dieser Test in Mocha bestanden?
- 3. Wie Einheit Test synchronisiert Code
- 4. xcode 7.3 UI-Test zufällig bestanden oder nicht bestanden
- 5. Jasmin parametrisierte Einheit Test
- 6. Wie zeige ich meine Tests in Github bestanden/nicht bestanden?
- 7. Einheit Test Architektur Frage
- 8. Einheit Test ASP.NET-Anwendung
- 9. Einheit Test Komponente Winkel
- 10. Einheit Test bestanden wird, wenn @Transactional markiert, aber nicht, wenn sie nicht
- 11. Junit warnt, während noch Test bestanden
- 12. Warum wird 'go test -run NotExist' bestanden?
- 13. Fehler in der Funktion nicht bestanden Test
- 14. Mein rspec Test wird nicht bestanden
- 15. AngularJS Einheit Attributwert-Test-Richtlinie
- 16. Wie Einheit-Test Logik in Jsp?
- 17. Wie Test Paket Abhängigkeiten in Scala Einheit?
- 18. optimistische Sperren Einheit Test Minitest
- 19. Controller Einheit Test in slim3
- 20. Einheit Test Priorität, Werkzeuge, Metriken
- 21. Keine Einheit Test Erfolg berichtet
- 22. ReSharper Einheit Test Runner - TestCase
- 23. Wie prüft Klee, ob der Test bestanden wurde oder nicht?
- 24. Fehler ‚nicht bestanden externe Einheit laden‘, wenn Python lxml mit
- 25. Python Nose Test Vererbung: Lade Einheit Test Fixtures aus Subklassen
- 26. Einheit Test Httprequest-Header mit ServiceStack
- 27. Winkelmesser Tests inkonsistent bestanden/nicht bestanden
- 28. AngularJS - Einheit Test-Richtlinie mit Jquery Funktion
- 29. gleiche Einheit Test für verschiedene Implementierungen
- 30. Autogenerate Einheit Test Stubs auf Android Studio
Suchen Sie nach einer Möglichkeit, den Anforderungsmanager zu überspielen, damit Sie die Hauptanforderungsklasse testen können, indem Sie den statischen Inhalt übergeben. Ich bin an genau der gleichen Stelle und werde hoffentlich diese Woche eine Lösung finden. – slott
Wenn Sie erfolgreich sind, würden Sie bitte hier posten? Auch wenn dieses Projekt vorbei ist, würde ich gerne für zukünftige Referenz wissen. – s73v3r