Testes unitários: Reaproveitando casos de teste (parte 3)

No artigo anterior da série sobre Testes Unitários, aprendemos a identificar a cobertura de testes através de um relatório e notamos que nossa classe não está totalmente testada. Na terceira e última parte desta série vamos criar outro caso de teste para validar aquela condição que nos retorna -1. Para que isso aconteça temos 3 cenários diferente que nos levam a este mesmo resultado:

  • Se o primeiro parâmetro for menor que zero.
  • Se o segundo parâmetro for menor que zero.
  • Se ambos os parâmetros forem menores que zero.

A primeira coisa que pensamos em fazer é criar um caso de teste para cada alternativa, mas isso não será necessário. Vamos criar apenas um caso e reaproveitá-lo. Assim como um método, podemos fazer com que o nosso caso de teste aceite parâmetros! Nosso novo caso de teste ficará dessa forma:


Utilizaremos a notação Theory no lugar de Fact e adicionaremos abaixo a notação InlineData. Esta notação suporta quantos valores precisarmos. Como nosso método precisa de dois parâmetros, informaremos dois valores. E repetiremos a notação três vezes, uma para cada cenário de teste. Dessa forma, com apenas um método de teste conseguimos validar três cenários. E por fim, no método de teste adicionamos parâmetros que receberão os valores que definimos em cada notação InlineData. Agora vamos gerar o relatório novamente. Obs: para isso precisamos executar o comando que gera o arquivo XML e o comando para gerar o relatório. O comando que instala o ReportGenerator só precisa ser executado uma vez. Agora em nosso relatório todas as linhas ficaram verdes!


E assim concluímos os testes da nossa classe. Testes unitários não é um bicho de sete cabeças. O que o torna complicado, na maioria das vezes, é o sistema que está sendo testado e por causa disso muitos desistem de aprender sobre ou aplicá-los. Um sistema não orientado a testes trará muitos desafios, porém muito aprendizado e certamente elevará a qualidade do seu código. Eu espero ter lhe ajudado a dar o primeiro passo no mundo dos testes. Até a próxima!

Compartilhe este post: