Android Espresso: Comment tester un fragment spécifique en suivant une activité sur plusieurs architectures de fragment
Mon application se compose d'un Activity
pour de nombreux Fragments
.
Je souhaite utiliser Espresso pour tester l'INTERFACE utilisateur de la Fragments
. Cependant j'ai rencontré un problème.
Comment puis-je tester un Fragment
qui n'est pas ajouté à un Activity
dans onCreate
. Tous les exemples que j'ai vu avec Fragments
impliquer les Fragment
être ajouté dans onCreate
.
Alors, comment puis-je dire à Expresso pour aller à un Fragment
et à partir de là?
Grâce
source d'informationauteur Ersen Osman
Vous devez vous connecter pour publier un commentaire.
Espresso pouvez tester
Fragments
seulement si elles sont affichées. Et qui doit être affiché par unActivity
.Avec votre configuration actuelle, vous aurez à utiliser de l'Espresso
click()
votre chemin (comme le ferait un utilisateur) à laFragment
que vous voulez vraiment tester.Dans un de mes projets j'ai un
ViewPager
qui afficheFragments
. Pour ceuxFragments
- je utiliser un customFragmentTestRule
de les tester dans l'isolement. Je peux commencer chaqueFragment
directement et l'utilisation de l'Espresso à l'essai. Voir cette réponse.Vous pouvez également:
Fragments
.Activities
sont plus faciles à tester. Vous pouvez tester chaqueActivity
sur son propre. Dans la plupart des casFragments
offre aucun avantage par rapport àActivities
.Fragments
juste faire de la mise en œuvre et de tests plus difficile.FragmentActivity
d'afficher directement un certainFragment
quand il est créé. E. g. par la fourniture d'une intention spécifique supplémentaire à votreFragmentActivity
. Mais ce sont des tests de code de votre application, qui n'est généralement pas une bonne solution.Juste montrer le Fragment à l'aide de l'Activité de l'SupportFragmentManager.
Par exemple (Kotlin) avec ActivityTestRule:
Viens de le faire avant de vos tests: