Est-ce que quelqu'un a eu de la chance en écrivant des tests unitaires pour AsyncTaskLoaders dans Robolectric? J'ai essayé une version modifiée de ce example for AsyncTask, mais il n'a pas le même comportement. En particulier onLoadFinished
n'est jamais appelé. Existe-t-il des exemples pratiques pour tester les chargeurs avec Robolectric?Test de AsyncTaskLoaders avec Robolectric
Répondre
N'utilisez pas de chargeurs. Ils ne sont pas faciles à tester, et ils sont étroitement liés aux fragments et aux activités qui les utilisent. Utilisez plutôt RxJava Observables pour vos flux de données asynchrones. Vous pouvez découpler la planification et la tester de manière synchrone dans vos tests unitaires. C'est beaucoup plus propre et beaucoup plus simple.
avez-vous des exemples à partager? Je cherche spécifiquement la partie "découplage du planificateur". Est-ce que vous faites quelque chose différemment dans votre code en vous inscrivant comme injecter un programmateur commun? Ou est-ce que la méthode nifty dit juste à Rxjava d'exécuter tout sur un thread spécifié? –
Je passe une SchedulerFactory aux classes qui en ont besoin et en production je repasse les ordonnanceurs asynchrones (io, newThread, etc) pour leurs appels respectifs dans les méthodes d'usine, tandis que dans les tests unitaires tous les appels retournent le thread courant les appels. Vous pouvez passer un planificateur à un observable. –
Je viens de publier une manière que je l'ai eu à travailler dans ce billet pile: Testing a CursorLoader with Robolectric & Mockito
Il consiste à écrire un couple des classes d'ombre supplémentaires. Je peux coller le correctif ici si demandé mais je n'étais pas sûr de ce que la convention était pour une réponse en double.
- 1. Test d'ActiveAndroid avec Robolectric
- 2. Robolectric 3.0 Test - Android
- 3. test unité retardé bloc de l'application Android avec Robolectric
- 4. Robolectric: test d'un modèle ListView avec ViewHolder cause NullPointerException
- 5. qualificatifs Robolectric question de la dépendance Robolectric
- 6. Robolectric Problème avec ProgressBar
- 7. getSupportActionBar() renvoie null avec Robolectric
- 8. Fournir des données de test pour SharedPreferences pour Robolectric
- 9. Robolectric + Maven
- 10. Comment tester setResultData() de BroadcastReceiver avec Robolectric
- 11. ExceptionInInitializerError avec PowerMock et Robolectric
- 12. Robolectric Run Handler post
- 13. Injecter le service avec Dagger et Robolectric
- 14. Obtenir Robolectric pour travailler avec Volley
- 15. Robolectric: use local SQLiteDatabase
- 16. PowerMock + Robolectric + ActiveAndroid
- 17. Robolectric + SQLiteStatement.executeUpdateDelete() n'effectue aucune action
- 18. Robolectric, Problèmes avec les éléments de la liste de clics
- 19. Exception lors de l'utilisation de Robolectric + ActionBarSherlock
- 20. Configurer Robolectric dans build.gradle
- 21. ombres robolectric avec la classe finale?
- 22. robolectric 2 - créer une activité avec l'intention
- 23. Robolectric NoClassDefFoundError avec les packages org.apache
- 24. Ressources $ NotFoundException pour String array avec Robolectric
- 25. TDD sur Android avec Robolectric et Mockito
- 26. montrer le message d'affirmation avec robolectric
- 27. Robolectric + JMockIt Configuration
- 28. Robolectric 3.0: Mocking System.currentTimeMillis()
- 29. Comment appelez-vous ShadowWifiManager.setScanResults de Robolectric()?
- 30. Robolectric et FragmentTestUtil
Avez-vous trouvé une solution? – Kuno
Malheureusement pas. –