Testes de software - Teste Unitario - Code coverage

Quando efetuamos um teste unitário estamos preocupados em testar o resultado que esta sendo esperado, mas se o nosso código a ser testado houver varias possibilidades com vários fluxos dentro dele, como garantir que o nosso teste passou por vári

Code coverage

Quando efetuamos um teste unitário estamos preocupados em testar o resultado que esta sendo esperado, mas se o nosso código a ser testado houver varias possibilidades com vários fluxos dentro dele, como garantir que o nosso teste passou por vários caminhos. É o Code Coverage que podemos testar todo o caminho do código e não somente seu resultado. 

O code coverage é um teste unitário com uma propriedade habilitada, esse teste também podemos dizer que é um teste de caixa branca.

Vamos iniciar criando o método que queremos testar.

public static class Calcular { public static decimal Somar(decimal valorA, decimal ValorB) { if (valorA == 5) throw new Exception("Valor inválido"); else if (valorA == 6) throw new Exception("teste"); return valorA + ValorB; } }

Agora vamos preparar os testes unitários

[TestMethod] public void TestCodeCoverage() { Decimal valorA = 3; // TODO: Initialize to an appropriate value Decimal ValorB = 6; // TODO: Initialize to an appropriate value Decimal expected =9; // TODO: Initialize to an appropriate value Decimal actual; actual = Demo.Artigo.Calculo.Calcular.Somar(valorA, ValorB); Assert.AreEqual(expected, actual); }

Para habilitar o code coverage no menu Test >> Edit test Settings >> Local (local.testsettings).


E em Data and Diagnostics, vamos habilitar a opção Code Coverage



Como o método que iremos testar esta dentro de outro projeto, em Configure habilitaremos



Após executar o teste, temos que habilitar a janela Code Coverage Results para ver ser resultado e para isso no menu Test>>Windows>>Code Coverage Results.




Podemos ver que 69,23% do código foi coberto pelo teste unitário, e ao clicar duas vezes no método testado podemos abri-lo e teremos as linhas coloridas indicando o que foi coberto ou não.



A linha com a cor azul representa por onde o teste unitário conseguiu testar e a cor rosa por onde o teste não passou.

http://www.nandosilva.com
http://www.twitter.com/nandinhors

Artigos relacionados