Configuration de Powemockito pour les moqueries statiques
Je voudrais faire usage de Powermock avec Mockito, à se moquer de certaines méthodes statiques. J'ai suivi les instructions et les exemples de SORTE que comme le PowerMock Prise En Main et MockStatic pages du mieux que je peux, mais je suis encore à remplir un mockStatic ().
Quand je l'appelle mockStatic(foo.class) de ma classe de test, je me suis donné la excception:
java.lang.NoClassDefFoundError: org/Mockito/mock/MockName
at org.powermock.api.mockito.PowerMockito.mockStatic(PowerMockito.java:70)
at ...my test class method call...
Je suis sûr que c'est un problème de configuration, comme je l'ai été de trouver la terminologie utilisée pour définir ce jusqu'à être assez déroutant. Je l'ai fait attraper l'Mockito Zip à partir de la PowerMock téléchargements. Dans Eclipse (3.5.2) j'ai ouvert les propriétés du projet et ajouté tous les Pots pour le build path. J'ai aussi essayé d'ajouter l'ensemble de décompressé powermockito dossier de mes variables d'environnement classpath, et puis il suffit de le powermockito bocal en particulier lorsque cela ne fonctionne pas.
J'ai ces annotationsat au niveau de la classe de ma classe de test ainsi, par la powermock instructions:
@RunWith(PowerMockRunner.class)
@PrepareForTest(ApplicationContextLoader.class)
Aussi ces powermock-importations spécifiques:
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
Pour ceux d'entre vous qui ont utilisé PowerMockito avant, même juste un pointeur dans la bonne direction, ou quelque chose à vérifier serait vraiment utile. J'ai du mal à voir comment mon installation diffère de celui de les postes que j'ai vu à l'aide - de ce que je peux dire la même syntaxe.
source d'informationauteur Ubunfu
Vous devez vous connecter pour publier un commentaire.
Probablement, les versions de Powermock et Mockito ne sont pas compatibles. Correctif et ce ne sera pas une question n plus.
Voir: https://github.com/jayway/powermock/wiki/MockitoUsage
Si vous utilisez un statique de l'objet fantaisie, dans votre
PrepareForTest
annotation, ajouter la classe qui est à l'AIDE de l'objet statique en plus de la statique de la classe elle-même. Si la classe de besoins de tests à utiliser cette statique, ajouter une classe à l'annotation. Vous n'avez pas vraiment se moquer de la classe, mais il doit être dans l'annotation de l'électricité statique à crochet. Il semble bizarre, mais ça fonctionne.Lors de l'ajout de plusieurs classes dans l'annotation, vous pouvez les avoir à l'intérieur de
{}
et séparés par des virgules. Par exemple, si votre classe statique estStaticA.class
et la classe à l'aide de la statique estCallerOfStatic.class
vous pouvez utiliser:Assurez-vous que powermockito et mockito versions alignés, comme dans ce tableau - https://github.com/jayway/powermock/wiki/MockitoUsage#supported-versions ,
Moyen facile de trouver de l'est,
Dans mon cas, powermock
1.5.6
et mockito1.9.5
ont été alignés, mais a dû changer pour utiliser lemockito 1.8.5
comme quelqu'un d'autre dans la dépendance était déjà à l'aide de mockito 1.8.5.Combinaison suivante fonctionne parfaitement pour moi,