Impossible d'exécuter de test JUnit avec PowerMockRunner
J'ai un Gradle projet Java ont été, j'ai maintenant envie de se moquer d'une méthode privée à l'aide de PowerMock. Le problème est que je ne suis pas en mesure d'utiliser le PowerMockRunner que j'ai toujours de l'exception suivante lorsque j'ajoute le @RunWith(org.powermock.modules.junit4.PowerMockRunner.class)
annotation.
Erreur:
org.powermock.reflect.exceptions.FieldNotFoundException: Field 'fTestClass' was not found in class org.junit.internal.runners.MethodValidator.
at org.powermock.reflect.internal.WhiteboxImpl.getInternalState(WhiteboxImpl.java:581)
at org.powermock.reflect.Whitebox.getInternalState(Whitebox.java:308)
at org.powermock.modules.junit4.internal.impl.testcaseworkaround.PowerMockJUnit4MethodValidator.validate TestMethods(PowerMockJUnit4MethodValidator.java:79)
at org.powermock.modules.junit4.internal.impl.testcaseworkaround.PowerMockJUnit4MethodValidator.validate InstanceMethods(PowerMockJUnit4MethodValidator.java:49)
at org.junit.internal.runners.MethodValidator.validateMethodsForDefaultRunner(MethodValidator.java:51)
at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.validate(PowerMockJUnit44RunnerDelegateImpl.java:108)
...
Ce sont mes test dépendances:
testCompile 'junit:junit:4.+',
'org.powermock:powermock-core:1.5.6',
'org.powermock:powermock-module-junit4:1.5.6',
'org.powermock:powermock-api-mockito:1.5.6'
Le test lui-même échoue également lorsqu'il est complètement vide (erreur d'initialisation):
@RunWith(PowerMockRunner.class)
public class SomeTest {
@Test
public void testSomething() {
}
}
Les idées de ce que pourrait être mal? D'autres tests à l'aide de PowerMock fonctionnent très bien (aucun d'entre eux utilise la PowerMockRunner).
Salutations et merci pour toute aide!
Ben
Vous devez vous connecter pour publier un commentaire.
C'est un bug qui se produit lorsque vous utilisez JUnit 4.12 et PowerMock < 1.6.1. Le problème est résolu dans PowerMock 1.6.1. Veuillez mettre à jour vos dépendances en conséquence
Si vous ne pouvez pas mettre à niveau PowerMock ensuite, vous pouvez utiliser JUnit 4.11.
Pourriez-vous ajouter d'autres lignes de la stacktrace, qui de découvrir plus de détails sur le problème.
1.6.1
soit. J'utilise Powemock1.6.1
avec JUnit4.12
.Il y a eu un bug connecté à l'encontre de PowerMock: https://code.google.com/p/powermock/issues/detail?id=531
Il semble que JUnit changé une partie de son nom de champ interne qui PowerMock a accès via la réflexion, brisant ainsi la possibilité pour PowerMock correctement injecter lui-même.
Vérifier ce que Stefan a dit, et au-dessus que vous devez également ajouter
sans le préparer pour le test, la PowerMockRunner de ne pas savoir quelle est la classe se moque.