Existe uma maneira automatizada de garantir que todas as partes do código sejam testadas na unidade?
-
23-09-2019 - |
Pergunta
Escrevi testes JUNIT para minha aula e gostaria que ela me dissesse se há alguma parte do meu código que não é testada na unidade. Existe uma maneira de fazer isso?
Solução
Se você usar o Eclipse, você também pode tentar Eclema, que mostra quais linhas de fonte foram cobertas pelo seu teste. Às vezes, isso é mais útil do que executar uma ferramenta de cobertura como o Cobertura, porque você pode executar um único teste a partir do Eclipse Inside e, em seguida, obter feedback imediato sobre o que foi coberto.
Outras dicas
Sim, ferramentas de cobertura como Cobertura ou Emma.
Eles criam relatórios que mostram todas as linhas do código -fonte e se foram executadas ou não (e também estatísticas agregadas).
Obviamente, eles só podem mostrar se o código foi executado. Não há como saber se o teste de unidade continha afirmações para confirmar que o resultado estava correto.
Você precisa de algumas ferramentas de cobertura de código. Ver Aqui (http://java-source.net/open-source/code-cobage) para alguns
Se você olhar para o primeiro, acho que faz o que você precisa
O Cobertura é uma ferramenta Java gratuita que calcula a porcentagem de código acessado por testes. Ele pode ser usado para identificar quais partes do seu programa Java falta cobertura de teste. É baseado na JCoverage. Recursos de Cobertura:
- Pode ser executado a partir da ANT ou da linha de comando.
Sua manchete e sua pergunta real diferem. As ferramentas mencionadas nas outras respostas podem dizer, qual parte do código foi não testado (= não executado). Fazer "verifique se todas as partes do código é testado na unidade" é uma coisa diferente. As ferramentas de cobertura podem dizer se todas as linhas/instruções foram executadas, mas não garantem que tudo seja testado funcionalmente (todas as constelações de dados, todos os caminhos de execução etc.). Isso requer algum poder cerebral. Na minha opinião, a cobertura do teste geralmente dá um sentimento errado de segurança. Por exemplo, testes triviais de getters aumentam muito a cobertura, mas é bastante inútil.
Se você está usando o Intellij, há um botão intitulado
"Corra com cobertura"