PowerMock renvoie NoSuchMethodError (setMockName)
Je suis en train de se moquer d'un constructeur à l'aide de PowerMockito
mais chaque fois que je lance le test, j'obtiens l'erreur suivante:
java.lang.NoSuchMethodError: org.mockito.internal.creation.MockSettingsImpl.setMockName(Lorg/mockito/mock/MockName;)Lorg/mockito/internal/creation/settings/CreationSettings;
at org.powermock.api.mockito.internal.mockcreation.MockCreator.createMethodInvocationControl(MockCreator.java:107)
at org.powermock.api.mockito.internal.mockcreation.MockCreator.mock(MockCreator.java:60)
at org.powermock.api.mockito.internal.expectation.DefaultConstructorExpectationSetup.createNewSubstituteMock(DefaultConstructorExpectationSetup.java:105)
at org.powermock.api.mockito.internal.expectation.DefaultConstructorExpectationSetup.withAnyArguments(DefaultConstructorExpectationSetup.java:71)
J'ai le texte suivant PowerMock dépendances dans mon projet:
- org.powermock:powermock-module-junit4:1.5.6
- org.powermock:powermock-mockito-release-plein:1.5.6
J'ai retracé l'arbre des dépendances de mon projet et fixe les conflits, de sorte que mockito-all:1.9.5
qui est inclus dans les construire.
source d'informationauteur Psycho Punch
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que
powermockito
etmockito
versions sont alignés comme dans cette versions graphique - MockitoUsage#prise en charge-les versions,Moyen facile de trouver des
mockito
etpowermock-mockito
version à l'aide de maven est,Pourrait être le problème des versions contradictoires
mockito
dans l'application et celui quipowermockito
utilise contradictoires, comme ci-dessous dans mon cas où je suis en utilisantpowermock 1.6.5
qui ne prend pas en chargemockito 1.8.5
Mon problème était dû à des versions contradictoires javassist dans mon projet (transitif) dépendances. Ce que j'ai fait a été de recherche pour toutes les dépendances qui mettent de l'ancienne version de javassist dans la construction, puis de les exclure. Par exemple:
J'avais
ajouté à mon pom.xml en dehors de powermock est avec des dépendances, la suppression de ce fonctionné pour moi.
Pour moi, dans Eclipse, le correctif de ce problème a été trouvé dans Java Build Path. Cliquez sur la Commande et à l'Exportation de l'onglet. Déplacer Web App Bibliothèques à bas. Remarque, le cas échéant, cela vous permettra également d'afficher la source de la 3e partie des bibliothèques lors de l'Eclipse vous dit que la source ne peut pas être trouvé.
Dans mon cas, c'était un conflit de dépendance.
J'ai eu le fixer après exclure mockito-core artefact: