Quelqu'un sait-il comment obtenir le contexte du projet de test dans le cas de test junit Android (étend AndroidTestCase).
Remarque: le test n'est PAS un test d'instrumentation.
Remarque 2: j'ai besoin du contexte du projet de test, pas du contexte de l'application réelle qui est testée.
J'en ai besoin pour charger certains fichiers à partir des actifs du projet de test.
Réponses:
Il existe une nouvelle approche avec la bibliothèque de support de test Android (actuellement
androidx.test:runner:1.1.1
). Exemple mis à jour de Kotlin:Si vous souhaitez également exécuter le contexte d'application:
Exemple d'exécution complet: https://github.com/fada21/AndroidTestContextExample
Regardez ici: Quelle est la différence entre getTargetContext () et getContext (sur InstrumentationRegistry)?
la source
compile "com.android.support.test:runner:1.0.1"
à votre noteInstrumentationRegistry.getInstrumentation().context
place.Après quelques recherches, la seule solution de travail semble être celle déjà indiquée par Yorkw. Vous devrez étendre InstrumentationTestCase, puis vous pourrez accéder au contexte de votre application de test en utilisant getInstrumentation (). GetContext () - voici un bref extrait de code utilisant les suggestions ci-dessus:
la source
Comme vous pouvez le lire dans le code source d'AndroidTestCase , la
getTestContext()
méthode est masquée.Vous pouvez contourner l'
@hide
annotation en utilisant la réflexion.Ajoutez simplement la méthode suivante dans votre
AndroidTestCase
:Ensuite, appelez à
getTestContext()
tout moment. :)la source
java.lang.NoSuchMethodException: android.test.ServiceTestCase.getTestContext()
Mise à jour:
AndroidTestCase
cette classe est obsolète au niveau de l'API 24. À utiliser à laInstrumentationRegistry
place. Les nouveaux tests doivent être écrits à l'aide de la bibliothèque de support des tests Android. Lien vers l'annonceVous devez étendre AndroidTestCase au lieu de TestCase.
Vue d'ensemble de la classe AndroidTestCase
Étendez ceci si vous avez besoin d'accéder à des ressources ou à d'autres éléments qui dépendent du contexte d'activité.
AndroidTestCase - Développeurs Android
la source
Si vous souhaitez obtenir le contexte avec Kotlin et Mockito, vous pouvez le faire de la manière suivante:
J'espère que ça vous aide
la source
Il s'agit de la manière correcte d'obtenir le contexte. D'autres méthodes sont déjà obsolètes
la source
la source
Pour ceux qui rencontrent ces problèmes lors de la création de tests automatisés, vous devez faire ceci:
la source
Les autres réponses sont dépassées. À l'heure actuelle, chaque fois que vous étendez AndroidTestCase, il existe un objet mContext Context que vous pouvez utiliser.
la source