Estou investigando qual estrutura de simulação usar no meu projeto e a reduzi a JMockit e Mockito .
Percebo que o Mockito foi eleito " o melhor framework simulado para Java " no Stackoverflow.
Na comparação de características em JMockit 's ' Mocking Ferramenta de Comparação Matrix ' parece que JMockit tem várias características diferentes.
Alguém tem alguma informação específica (não opiniões) sobre o que o Mockito pode fazer e que não pode ser alcançado com o JMockit e vice-versa?
Respostas:
Atualização em setembro de 2019: A única estrutura de simulação suportada (por padrão) pelo Spring Boot é o Mockito . Se você usa o Spring, a resposta é bastante óbvia.
Eu diria que a competição é entre JMockit e PowerMock , depois Mockito .
Eu deixaria o jMock e o EasyMock "simples" porque eles usam apenas proxy e CGLIB e não usam a instrumentação Java 5 como as estruturas mais recentes.
O jMock também não possui uma versão estável há mais de 4 anos. O jMock 2.6.0 exigiu 2 anos para passar de RC1 para RC2 e mais 2 anos antes de ser lançado.
Em relação ao Proxy e CGLIB vs instrumentação:
O acima é copiado de http://jmockit.org/about.html . Além disso, ele compara entre si (JMockit), PowerMock e Mockito de várias maneiras:
(concedido, a fonte pode ser tendenciosa, mas bem ...)
Eu diria que vá com o JMockit . É o mais fácil de usar, flexível e funciona em praticamente todos os casos, inclusive nos mais difíceis e nos cenários em que você não pode controlar a classe a ser testada (ou não pode quebrá-la devido a motivos de compatibilidade etc.).
Minhas experiências com o JMockit foram muito positivas.
fonte
-javaagent
sinalizador desde 1,42 porque você não pode se auto-conectar mais desde o Java 9 e encontrar soluções alternativas adequadas obviamente não estava no escopo do desenvolvedor. Outro ponto é que o JMockit não permite mais zombar de métodos e construtores privados, enquanto o PowerMock faz o mesmo.Trabalhei com Mockito e JMockit, e minha experiência com eles é:
Mockito:
EasyMock:
JMockit:
Além disso, outros benefícios do JMockit:
Pessoalmente, prefiro o JMockit, que acho que é mais rico em recursos e flexível, mas requer uma curva de aprendizado um pouco mais acentuada. Geralmente, existem várias maneiras de obter o mesmo efeito de zombaria e requer mais cuidado ao projetar as zombarias.
fonte
Eu uso o jMockit apenas por causa de suas bibliotecas de reflexão no Deencapsultation.class. Na verdade, eu amo o estilo de Mockito, mas recuso-me a alterar meu código e a alterar minha API apenas para que uma estrutura de teste limitada possa chegar a ele. E eu sou fã de testar todo o meu código, portanto, uma estrutura que não pode testar facilmente métodos privados não é o que eu quero usar.
Eu fui influenciado por este artigo
Após uma curva de aprendizado (reconhecidamente grande), o jMockit agora é minha principal estrutura de teste de unidades para zombarias.
fonte
Para facilitar o teste de nossa base de código herdada (com muitas chamadas de método estáticas, etc.), o JMockit tem um valor inestimável. [Plug descarado para um artigo no meu blog]
fonte
Eu pessoalmente prefiro o EasyMock .
A capacidade de desviar entre controles legais, normais e rígidos de zombaria é um dos meus recursos favoritos.
fonte