Existe uma maneira automatizada de garantir que todas as partes do código sejam testadas na unidade?

StackOverflow https://stackoverflow.com/questions/2542574

  •  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?

Foi útil?

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"

Run with Coverage

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top