Concebidos com a finalidade de verificar pequenas porções de código como classes e métodos, testes unitários representam um importante artefato para a validação das estruturas que compõem um software. Um dos benefícios diretos da adoção de tal prática está na obtenção de sistemas mais confiáveis, além da capacidade de se verificar com uma maior velocidade os impactos decorrentes de mudanças.
No caso específico da plataforma .NET, merecem destaque como alternativas para a implementação de testes unitários:
- O Visual Studio Unit Testing Framework (MS Test), parte integrante da própria IDE de desenvolvimento da Microsoft;
- O NUnit, framework open source derivado do projeto JUnit (um dos primeiros frameworks para testes unitários na plataforma Java);
- O xUnit.net, também de código aberto e considerado uma evolução do NUnit.
Este artigo tem por objetivo discutir os aspectos de configuração envolvendo o uso das soluções mencionadas no Visual Studio 2015. Isto será feito através de uma descrição detalhada nas próximas seções de quais ajustes se fazem necessários, a fim de viabilizar a utilização destes frameworks em projetos de testes voltados à plataforma .NET.
Visual Studio Unit Testing Framework (MS Test)
Conforme já mencionado, o MS Test é uma opção nativa do próprio Visual Studio. A utilização do mesmo está atrelada ao template “Unit Test Project”:
Ao se criar um projeto deste tipo uma referência do framework MS Test será adicionada automaticamente (com os recursos de validação estando localizados no namespace Microsoft.VisualStudio.QualityTools.UnitTestFramework):
OBSERVAÇÃO: para os testes realizados durante a elaboração deste post foi usado o Microsoft Visual Studio Community 2015.
NUnit
Duas extensões facilitam o uso do NUnit a partir do Visual Studio (como indicado na próxima imagem):
- NUnit Templates for Visual Studio;
- NUnit3 Test Adapter.
Ao instalar a extensão “NUnit Templates for Visual Studio” ficará então disponível a opção “NUnit 3 Unit Test Project” para a criação de novos projetos de testes:
Na figura a seguir é possível observar a referência do NUnit que foi incluída no projeto de testes (os principais recursos disponibilizados pelo NUnit encontram-se declarados no namespace NUnit.Framework):
Quanto à extensão “NUnit3 Test Adapter”, este complemento possibilita que o resultado da execução de testes unitários implementados com o NUnit 3.0 seja exibido na janela “Test Explorer” da IDE:
OBSERVAÇÃO: novas extensões podem ser adicionadas ao Visual Studio acessando o menu “Tools”, opção “Extensions and Updates…”.
xUnit.net
Para utilizar o xUnit.net será necessário adicionar via NuGet os seguintes packages (conforme indicado na imagem a seguir, utilizando como base um projeto do tipo “Unit Test Project”):
- xunit, contendo as estruturas de validação do framework xUnit.net;
- xunit.runner.visualstudio, o qual fará a integração com o Visual Studio e possibilitará a visualização do resultado dos testes na janela Test Explorer.
Na próxima figura estão destacadas em vermelho as referências incluídas no projeto de testes (foi também removida a biblioteca que corresponde ao framework MS Test):
Importante ressaltar ainda que os principais recursos para a codificação de testes empregando o xUnit.net estão definidos no namespace Xunit.
Conclusão
Como não é difícil de se imaginar, os frameworks apresentados neste post possuem diversos pontos em comum no que se refere à implementação de testes unitários. São justamente suas características específicas que irão determinar qual a melhor alternativa para cada cenário. Na seção “Referências” foram listados alguns links que podem ser úteis àqueles que se interessarem em conhecer um pouco mais sobre tais soluções.
Espero que este conteúdo possa ter sido útil.
Até uma próxima oportunidade!
Renato Groffe – Consultor em TI, MTAC
https://www.facebook.com/RenatoGroffeSW
Referências
Testes unitários com o framework xUnit.net
http://social.technet.microsoft.com/wiki/pt-br/contents/articles/31395.testes-unitarios-com-o-framework-xunit-net.aspx
Testes Unitários no Visual Studio
http://www.devmedia.com.br/testes-unitarios-no-visual-studio-2012/27215
xUnit.net – Documentation
http://xunit.github.io/