Teste de Software: Teste Unitário com MSTest

Olá pessoas!

Após um bom tempo sumido, hoje vamos continuar a série de Teste de Software. Nesse post vamos, finalmente, ver como criar nosso primeiro teste unitário. Vamos utilizar a biblioteca da Microsoft para criar nossos métodos de teste, mas não se preocupe, pretendo nessa semana mostrar como criar a mesma classe com NUnit e xUnit.

Bom mas chega de lero lero, vamos ao código.

Dada a seguinte classe:

ClassCalcularVamos criar nosso projeto de teste.

newProjectTestMsTest

Selecione Test -> Unit Test Project. Um padrão para o nome do projeto de teste que adoto é utilizar o nome do projeto, no qual será testado, mais “.Test”. Assim acho mais claro para visualizar os testes quando temos mais de um projeto ou bibliotecas de class.

ProjetoCalculadoraTesteMsTest.Test

Agora já temos nosso projeto de teste para testes unitários. Vamos primeiramente excluir a classe UnitTest1.cs. Após excluído a classe vamos referenciar o projeto que será efetuado os testes.

ReferenciarProjetoParaTestar

Agora vamos criar uma classe de teste. Adicione a classe CalculadoraTest.cs ao projeto. Utilizo como padrão o nome da classe que quero testar mais Test.

Após criar a classe vamos adicionar o using Microsoft.VisualStudio.TestTools.UnitTesting;, agora iremos adicionar o atributo [TestClass] na classe, após isso vamos criar o método void Calcular_Somar_1Mais2_Resultado3(), adicionando também nesse método o atributo [TestMethod].

Obs.: Para o nome do método eu gosto de definir da seguinte forma; NOMEDACLASSETESTADA_NOMEDOMETODOTESTADO_PARAMETROS_RESULTADO(). nessa forma fica mais fácil entender o que esse método faz e o que ele está testando.

ClassCalculadoraTest

Quando fui apresentando ao primeiro código de teste unitário o padrão utilizado para criar o teste foi o AAA (Arrange, Act, Assert). Vamos ver como utilizando esses 3 A(s) fica muito simples entender como criar um teste.

MetodoTestCalcularSomarAAA

Como podemos ver na imagem a cima, eu separo em 3 partes o método:

  • Arrange: Nessa parte você instancia as variáveis necessárias para efetuar o teste, também gosto de setar o resultado esperado.
  • Act: Executa o método que estamos testando.
  • Assert: Efetua a validação do teste. Nesse caso estou utilizando o método Assert.AreEqual(resultado, resultadoEsperado);

Na classe Assert temos as validações para efetuar os testes. O AreEqual() é utilizado para comparar dois valores se os mesmo são iguais ou não.

Agora basta rodar o teste e verificar se o método faz o que deve ou não fazer. Para executar o teste existem duas formar. Primeira, é possível clicar com o botão direito do mouse e ir na opção Run Tests. A segunda forma é abrindo o Test Explore, selecionar o teste e rodar. Lembrando que para o test aparecer no test explore é necessário Rodar o Build do Visual Studio.

RodandoTeste

Finalmente temos nosso primeiro teste unitário rodando e passando. Claro que esse é um teste bem básico para quem nunca viu ou utilizou testes unitários, nessa série pretendo ir pouco a pouco apresentando novas abordagens para os testes unitários. Por hoje é isso, pretendo essa semana ainda mostrar esse mesmo exemplo utilizando NUnit Test e xUnit Test.

Código fonte: Calculadora

Qualquer duvida ou sugestão, não tenha vergonha comenta ai que vamos responder o mais rápido possível.

Um forte abraço! Até o próximo post.

Um comentário em “Teste de Software: Teste Unitário com MSTest

Deixe um comentário