J'essaie d'intégrer PowerMock comme une dépendance pour mes tests Android à l'aide de la construction suivante .Gradle configuration: Cependant, le compilateur se plaint de p> à la recherche de la structure du pot, j'ai remarqué que Dexmaker et PowerMock Déclarez un Qu'est-ce qu'un MockMaker? Comment vont-ils différer?
Et la question la plus importante: est-il possible de faire fonctionner PowerMock pour bien fonctionner avec Dexmaker? P> Merci d'avance. Toute aide serait grandement appréciée. P> p> Mockmaker Code> dans
Mockito-extensions code> p>
p>
3 Réponses :
Mockmaker est un module de colle qui intègre Dexmaker avec Mockito. Il faut que ce soit nécessaire pour Mockito de générer des classes de béton avec des fichiers Dalvik .dex au lieu de fichiers JVM .Class. P>
Il est possible que PowerMock fonctionnera avec Dexmaker, mais il est peu probable que les fonctionnalités avancées PowerMock fonctionnent. En particulier, PowerMock annonce cette annonce : p>
PowerMock utilise un chargeur de classe personnalisé et une manipulation de byTecode pour permettre la moqueur de méthodes statiques, constructeurs, classes finales et méthodes, méthodes privées, enlèvement des initialisateurs statiques et plus. EM> P> blockQuote>
Ce chargeur de classe personnalisé est peu susceptible de fonctionner sur DALVIKVM. P>
J'ai eu le même problème et je viens de trouver la solution ici . Cela implique un peu de travail manuel et vous devrez modifier vous-même le fichier JAR. P>
Alors, que Narihar suggère est la suivante. P>
Cette solution a fonctionné pour moi. Laissez-moi savoir si cela fonctionne aussi pour vous. P>
En outre, je peux voir que nous utilisons les mêmes dépendances. Dans mon cas, je devais enlever manuellement le hamcrest.jar et l'objenesis.jar comme il y avait des confilcts. P>
espère que cela aide. p>
Vous suggérez-vous que Dalvik permettra ensuite à l'utilisation de cette fonctionnalité et qu'il est possible de remplacer les méthodes finales, par exemple?
Vous pouvez essayer de mettre cela dans votre build.Gradle, il m'a résolu le même problème
android{ ... packagingOptions{ exclude 'mockito-extensions/org.mockito.plugins.MockMaker' } ... }