ALM - Criando Testes Unitários para Códigos “Legados” com o Visual Studio Intellitest
Introdução
Esse artigo tem como objetivo auxiliar no entendimento de uma nova funcionalidade inserida no Visual Studio 2015 chamada Intellitest. Esse artigo foi baseado na Palestra do Visual Studio Summit ministrada pelo MVP Igor Abade.
O que é o Intellitest?
O Intellitest (antigo Smart Unit Test ou mais antigo ainda PEX) é uma funcionalidade disponível no Visual Studio 2015 que tem como objetivo auxiliar o desenvolvedor na geração de testes unitários para seu código. O grande ganho que se tem com essa funcionalidade é a possibilidade de análise do código feita pelo Visual Studio e criação automática ou (co-criação) de um teste unitário, independente do grau de complexidade ou “acoplamento” do seu código fonte.
Assim, essa funcionalidade torna-se muito “poderosa” quando se fala de criação de testes unitários em códigos e sistemas “legados”. Normalmente quando se cria um novo código bem estruturado, é muito mais fácil a criação de um teste unitário, uma vez que você que está programando, ter uma noção do que determinada classe, função, linha de código irá fazer, facilitando a criação do código de teste unitário.
Mas a situação normalmente se complica, quando você precisa criar testes unitários de um código gerado por outro desenvolvedor com inúmeras linhas e complexidades. Aí que a nova feature do Visual Studio entra, ela é capaz de auxiliar no entendimento do código, identificando possíveis testes unitários, e também, lhe auxiliando com dicas e sugestões de correções para você estudar, escolher e codificar conforme sua necessidade.
https://qualidadeeti.files.wordpress.com/2015/06/image_thumb.png?w=244&h=198
https://qualidadeeti.files.wordpress.com/2015/06/image_thumb1.png?w=244&h=121
O Intellitest executa diversas validações, com inserção de dados aleatórios para testar seu método, mostrando os resultados e possíveis exceções para correção. Inclusive em situações que a entrada e saida não é “declarada” no código, ele se utiliza do Microsoft Fakes que ajuda você a isolar o código que está testando substituindo outras partes do aplicativo por stubs ou shims. Esses são pequenos trechos de código sob o controle de seus testes. Ao isolar seu código para teste, você sabe que se o teste falhar, a causa está lá e não em outro lugar. Stubs e shims também permitem que você teste seu código mesmo que outras partes do aplicativo ainda não estejam funcionando.
Como Usar?
Para usar o Intellitest, dê preferência ao uso do Visual Studio 2015, mesmo havendo o Smart Unit Test, pois a Microsoft dará sequência nas melhorias dessa feature em cima do Visual Studio 2015 e seus sucessores. Faça o download do Visual Studio 2015, disponível no site da Microsoft ou na sua assinatura MSDN, instale e comece a usar.
O passo a passo do uso do Intellitest (Smart Unit Test) e o Microsoft Fakes estão disponíveis nesses materiais abaixo:
– Gerar Testes de Unidade para seu Código
– Isolando o código em teste com o Microsoft Fakes
– Testando o instestável com o Microsoft Fakes
– Modelo Mental do Intellitest (Smart Unit Test) em inglês
Dicas
– Funciona com MSTest
– É possível adicionar suposições ao teste de unidade
– Só funciona com código gerenciado (Linguagem Intermediária da Microsoft)
Saiba mais e Fontes