8

Je voudrais écrire des tests pour Android app with deep link cases en utilisant l'infrastructure de test de l'interface utilisateur (Espresso) - lancer l'application en utilisant uniquement l'intention ACTION_VIEW et vérifier toutes les vues sur l'écran ouvert.Comment écrire des tests pour les liens profonds dans Android?

Mais ressemble à Espresso (même espresso-intentions) n'a pas cette fonctionnalité, et nécessite de définir la classe d'activité.

J'ai essayé de cette façon, mais cela ne fonctionne pas correctement, car l'application lancée deux fois - lancement standard en utilisant AppLauncherActivity (requis par Espresso) et le lancement via lien profond. Je voudrais lancer l'application de test en utilisant seulement un lien profond sans lancement standard. Savez-vous comment le faire?

+0

je l'ai déjà répondu à même question https ici: // stackoverflow.com/questions/44074173/automating-deep-linking-using-android-espresso/47813474#47813474. J'espère que cela aide! –

Répondre

4

J'ai trouvé une option - les paramètres d'ouverture de lien profond juste ajouté pour l'intention existe et utiliser le lancement standard d'activité:

@Rule 
public ActivityTestRule<AppLauncherActivity> activityRule = new ActivityTestRule<AppLauncherActivity>(AppLauncherActivity.class){ 
    @Override protected Intent getActivityIntent() { 
     Intent intent = super.getActivityIntent(); 
     intent.setAction(Intent.ACTION_VIEW); 
     intent.setData(Uri.parse("myapp://search/777")); 
     return intent; 
    } 
}; 
2
@Rule 
public ActivityTestRule<AppLauncherActivity> activityRule = new ActivityTestRule<>(AppLauncherActivity.class, false, false); 

Il existe plusieurs constructeurs pour créer une ActivityTestRule. Le troisième est launchActivity. Définissez-le sur false comme indiqué ci-dessus car vous démarrez manuellement cette activité par la suite avec activityRule.launchActivity(intent). Cela devrait l'empêcher de démarrer deux fois