J'étudie quel framework moqueur utiliser pour mon projet et je l'ai réduit à JMockit et Mockito .
Je remarque que Mockito a été élu " meilleur framework fictif pour Java " sur Stackoverflow.
En comparant les caractéristiques sur JMockit « de Mocking outil Matrice Comparaison » il apparaît que JMockit a plusieurs caractéristiques différentes.
Quelqu'un a-t-il des informations spécifiques (pas des opinions) sur ce que Mockito peut faire qui ne peut pas être réalisé avec JMockit et vice versa?
Réponses:
Mise à jour de septembre 2019: le seul cadre de simulation pris en charge (par défaut) par Spring Boot est Mockito . Si vous utilisez Spring, la réponse est assez évidente.
Je dirais que la concurrence est entre JMockit et PowerMock , puis Mockito .
Je laisserais jMock et EasyMock "simples" car ils n'utilisent que proxy et CGLIB et n'utilisent pas d'instrumentation Java 5 comme les nouveaux frameworks.
jMock n'avait pas non plus de version stable depuis plus de 4 ans. jMock 2.6.0 a nécessité 2 ans pour passer de RC1 à RC2, puis encore 2 ans avant d'être publié.
Concernant Proxy & CGLIB vs instrumentation:
Ce qui précède est copié de http://jmockit.org/about.html . De plus, il se compare (JMockit), PowerMock et Mockito de plusieurs manières:
(d'accord, la source peut être biaisée, mais bon ...)
Je dirais d'aller avec JMockit . C'est le plus simple à utiliser, le plus flexible et fonctionne pour à peu près tous les cas, même les plus difficiles et les scénarios où vous ne pouvez pas contrôler la classe à tester (ou vous ne pouvez pas la casser pour des raisons de compatibilité, etc.).
Mes expériences avec JMockit ont été très positives.
la source
-javaagent
indicateur depuis 1.42 parce que vous ne pouvez plus vous auto-attacher depuis Java 9 et trouver des solutions de contournement appropriées n'était évidemment pas du ressort du développeur. Un autre point est que JMockit ne permet plus de se moquer des méthodes et des constructeurs privés alors que PowerMock fait un afaik.J'ai travaillé avec Mockito et JMockit, et mon expérience avec eux est:
Mockito:
EasyMock:
JMockit:
En outre, d'autres avantages de JMockit:
Personnellement, je préfère JMockit, qui, à mon avis, est plus riche en fonctionnalités et plus flexible, mais nécessite une courbe d'apprentissage un peu plus raide. Il existe généralement plusieurs façons d'obtenir le même effet moqueur et nécessite plus de soin lors de la conception des simulacres.
la source
J'utilise jMockit uniquement cause de ses bibliothèques de réflexion dans Deencapsultation.class. J'adore le style de Mockito, mais je refuse de changer mon code et de brouiller mon API juste pour qu'un cadre de test limité puisse y parvenir. Et je suis fan de tester tout mon code, donc un framework qui ne peut pas facilement tester des méthodes privées n'est pas ce que je veux utiliser.
J'ai été influencé par cet article
Après une courbe d'apprentissage (certes importante), jMockit est maintenant mon principal cadre de test unitaire pour les simulations.
la source
Pour tester facilement notre ancienne base de code (avec de nombreux appels de méthodes statiques, etc.), JMockit a été inestimable. [Prise sans vergogne pour un article sur mon blog]
la source
Personnellement, je préfère EasyMock .
La possibilité de passer d'un contrôle moqueur agréable, normal et strict est l'une de mes fonctionnalités préférées.
la source