3
respostas

Configuração de teste de integração com selenium e teste unitário em projeto AspnetMVC

Olá Senhores,

Alguém teria algum artigo ou livro para indicar, que explique as melhores práticas de configuração de testes de integração e testes unitário em C#, utilizando banco em memória/banco real e utilizando mocks ? Se for voltado para projetos AspnetMVC eu agradeço.

Uma outra dúvida , é uma boa ideia subir uma vm docker com um banco separado para rodar os testes de integração dos Repositórios ?

Atenciosamente.

3 respostas

Olá, otavios-goncalves

Para testes (de unidade e integração), eu indico o material abaixo:

Vídeos do Channel 9: (Ative as legendas em português)

Modern Dev Practices: Unit Testing https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Modern-Dev-Practices-Unit-Testing

DevOps Summit Brasil 2016: +10 Ferramentas para Melhorar a Qualidade do seu Software https://channel9.msdn.com/Blogs/MVP-VisualStudio-Dev/10-Ferramentas-para-Melhorar-a-Qualidade-do-seu-Software

Build Noturno S01E04 - Teste de Software https://channel9.msdn.com/Blogs/ALMBrasil/Build-Noturno-S01E04-Teste-de-Software

Artigos MSDN:

Walkthrough: Creating and Running Unit Tests for Managed Code https://msdn.microsoft.com/en-us/library/ms182532.aspx

C# de teste de unidade no .NET Core usando dotnet test e xUnit https://docs.microsoft.com/pt-br/dotnet/core/testing/unit-testing-with-dotnet-test

C# de teste de unidade com MSTest e .NET Core https://docs.microsoft.com/pt-br/dotnet/core/testing/unit-testing-with-mstest

Teste de unidade no .NET Core e .NET Standard https://docs.microsoft.com/pt-br/dotnet/core/testing/

Sobre os testes no docker, acho que não entendi direito que você quis dizer. É para ter um banco de dados de teste no container?

Olá Ricardo,

Obrigado pelo material de teste unitário, estarei lendo e dando um retorno do que decidi usar e como foi minha experiência configurando testes unitários.

Em relação ao docker é o seguinte: - Mandar meus testes subirem um vm docker com o sql server; - Rodar meus testes;e - Matar a vm.

Mas enfim , acredito que não seja uma solução muito viável usar o docker.

Estou pensando em utilizar testes de integração para a minha aplicação, então pensei em 3 soluções possíveis: - Usar um banco em memória; - Usar um banco transacional; - Usar o selenium para testes end-to-end apontando para um banco em memória( ou transacional).

Saberia me indicar como configurar as 3 opções acima e se isso é uma boa prática nos projetos AspnetMVC ?

Muito Obrigado pelo retorno Ricardo. Desde já agradeço.

Então pessoal,

Utilizei o NUnit para rodar os testes.

Consegui subir o IIS utilizando a API Seleno, http://seleno.teststack.net/docs/configuring-the-web-application

Essa API utiliza o Padrão PageObject pra os teste s e também tem umas features bem legais para teste. O diferencial dela é que há uma integração com o Aspnet.MVC, então facilita um bocado os testes.

Acredito que vou utiliza-los da aqui para frente. Em relação ao banco em memória ainda não decidi o que usar.

Atenciosamente.