2017-08-22 4 views
1

J'essaie d'obtenir des tests en cours d'exécution dans ce projet open source après la mise à niveau vers API 26 et Robolectric 3.4.2 (de 3,3 en raison de non prise en charge API 26)Robolectric 3.4 méta-données moqueurs ne fonctionne pas sur l'API 26

Il semble que le fait de se moquer des métadonnées ne fonctionne plus.

La configuration est la suivante Bundle metaData = mock(Bundle.class); RuntimeEnvironment.application.getApplicationInfo().metaData = metaData;

Toutefois, lorsque le test unitaire est exécuté, le rendement de métadonnée en tant que null Context applicationContext = RuntimeEnvironment.application.getApplicationContext(); ApplicationInfo info = applicationContext.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA); Bundle metaData = info.metaData;

Et je ne comprends pas pourquoi. Je suis nouveau à Robolectric et Mockito, mais j'aimerais vraiment comprendre ce qui ne va pas et comment y remédier, donc les pointeurs sont vraiment appréciés.

+1

Qu'essayez-vous de tester? –

+0

J'essayais d'exécuter les tests pour le SDK pour Parse pour Android. Je l'ai finalement corrigé en compilant l'API 26, en utilisant Robolectric 3.3.2 qui est la dernière version 3.3 à supporter l'API 26 et en définissant sdk = 25 dans la configuration de robolectric. – ernie

Répondre

0

J'ai obtenu les tests à exécuter enfin en compilant contre API 26, mais en utilisant Robolectric 3.3.2 qui est la dernière version 3.3 qui prend en charge encore API 26. Ensuite, dans la configuration robolectric j'ai mis sdk = 25.

Je viens d'ajouter ceci ici au cas où cela aiderait quelqu'un d'autre. Je n'arrive pas à comprendre pourquoi ça ne marche pas avec robolectric 3.4.