J'ai essayé de faire un cas de test étendant intstrumentationtestcase, et chaque fois que j'appelle getinstrumentation(), il retourne une instance nulle d'instrumentation au lieu d'une instrumentation, ce qui rend l'automatisation Je veux faire l'inutile. J'ai aussi la permission dans le manifeste même si je ne fais que tester l'automatisation sur la même application sur laquelle cette affaire va tourner ... des idées?android instrumentation cas de test - getinstrumentation() retournant null
Répondre
J'ai rencontré un problème similaire et il semble que la méthode getInstrumentation() renvoie une instrumentation valide uniquement après l'appel de la méthode setBase (InstrumentationTestCase) setUp. S'il vous plaît consulter le code ci-dessous et vérifiez les messages de débogage logcat:
import android.app.Instrumentation;
import android.test.InstrumentationTestCase;
import android.util.Log;
public class TestInstrumentation extends InstrumentationTestCase {
private static final String LOG_TAG = BrowseLocationsTest.class.getSimpleName();
private Instrumentation instr;
public TestInstrumentation() {
instr = getInstrumentation();
Log.d(LOG_TAG, "TestInstrumentation instrumentation: " + instr);
}
@Override
protected void setUp() throws Exception {
instr = getInstrumentation();
Log.d(LOG_TAG, "setUp instrumentation: " + instr);
super.setUp();
instr = getInstrumentation();
Log.d(LOG_TAG, "setUp instrumentation: " + instr);
}
public void testInstrumentation() {
Log.d(LOG_TAG, "testInstrumentation instrumentation: " + instr);
}
}
L'instrumentation est bien en place comme prévu juste après l'appel super.setUp().
Vous devez injecter l'instrumentation programme en appelant injectInstrumentation(InstrumentationRegistry.getInstrumentation());
en utilisant InstrumentationRegistry
de l'Android officiel test-support-lib: 0,1
Je pense que ce que vous avez vraiment besoin est contexte, junit4, nous pouvons obtenir contexte par InstrumentationRegistry.getContext();
J'ai eu le même problème en utilisant la bibliothèque de prise en charge des tests avec l'annotation @RunWith (AndroidJUnit4.class), bien que je me suis assuré d'injecter mon instrument dans la méthode setUp()
comme indiqué par @Gallal et @Dariusz Gadomski, seulement continué à lancer NullPointerExceptions.
Il s'avère que j'ai oublié d'inclure l'annotation @Before
sur ma méthode d'installation, donc jUnit4 ne l'a pas exécuté, alors qu'avant avec les tests Instrumentation basés sur jUnit3, il aurait été exécuté. Depuis que j'ai implémenté l'injection d'instrumentation dans setUp(), elle n'a jamais été injectée même si le code semblait l'avoir injecté.
Ainsi, au lieu de
@Override
protected void setUp() throws Exception {
...
Assurez-vous d'utiliser
@Before
public void setUp() throws Exception {
super.setUp();
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
}
à la place.
- 1. getJSON retournant null phonegap (android)
- 2. Comment forcer un changement d'orientation dans un test Android Instrumentation?
- 3. Comment vérifier que cette activité affiche une boîte de dialogue pendant un test d'unité Android
- 4. Instrumentation
- 5. Propriété de dépendance WPF retournant toujours NULL
- 6. comment exécuter les cas de test de PVplayer dans android?
- 7. Sockets recevant null (Android)
- 8. Test de performance Android
- 9. C# Test pour null
- 10. Quelles sont les causes possibles de File.getAbsolutePath() retournant null?
- 11. Contrôle de version des cas de test
- 12. Génération de cas de test aléatoires
- 13. Instrumentation d'une chaîne
- 14. MySQL Instrumentation utilisant mysql_proxy
- 15. Générer automatiquement des cas de test
- 16. Logiciel d'écriture de cas de test pour Mac?
- 17. Application de test Android
- 18. R: Création de cas de test de type lapply()
- 19. Android sqlight - toujours null
- 20. Accéder à une liste en cas de test JUnit
- 21. Instrumentation des bibliothèques Java de base
- 22. Cas de test Junit pour la classe wrapper
- 23. Test d'un pointeur de fonction C# (délégué) pour Null
- 24. La session est null en cas d'héritage de System.Web.UI.Page
- 25. Problème de cas SQL simple - renvoyer 0 lorsque NULL
- 26. test si un shared_ptr est NULL
- 27. Test .NET NUnit - Assembly.GetEntryAssembly() est null
- 28. Test des applications Android
- 29. Test de null, inline, sur un appel ASP.net Bind()
- 30. Android app unit test