Qual é a melhor estrutura de isolamento para Java? Jmock, Easymock, Mockito ou outro?
-
27-09-2019 - |
Pergunta
Sei que isso já foi perguntado antes, mas a última vez foi em meados de 2008.
Se você estava iniciando um novo projeto agora, qual você usaria e por quê? Quais são seus pontos fortes/fracos em relação à legibilidade, usabilidade, manutenção e robustez geral?
Solução
Eu usei Easymock mais cedo, mas agora estou usando o Mockito. Encontrei o Mockito mais simples em comparação com o Easymock. Para a comparação detalhada de Easymock e Mockito, você pode consultar aqui
Outras dicas
Para explicar nossa motivação, Jmock é uma biblioteca "opinativa". Ele foi projetado para orientar uma abordagem para o design OO que se concentra nos protocolos entre objetos colaboradores. Se você não pensa em seus sistemas dessa maneira, provavelmente não é sua melhor opção.
Eu uso o Easymock há algum tempo, agora. Continua a adicionar novos recursos que permitem alcançar mais daqueles lugares difíceis de obter.
O Mockito salvará algumas linhas de código para os casos de teste mais comuns.
Você poderia elaborar suas necessidades/prioridades de capacidade simulada? Bastante amplo, como afirmado.
Minha resposta (tendenciosa) seria Jmockit. Para uma rápida comparação com outros kits de ferramentas de zombaria, consulte o Matriz de comparação.
O código de teste escrito com ele deve ser mais legível e melhor estruturado (existem testes de exemplo para comparação lado a lado). A API de zombaria do JMOCKIT geralmente requer menos "usos" do que outras APIs de zombaria para escrever o mesmo teste. A maior vantagem, IMO, é que ele não force nenhum design comprometido no código a ser testado. Por desvantagem, como o JMOCKIT depende de técnicas mais avançadas e tem mais recursos, ele também tem um potencial maior para os usuários terão dificuldades inesperadas.