[Dica Rápida] — Utilizando o Unit Test Boilerplate Generator

Fernando Mendes
JunDevelopers
Published in
4 min readAug 18, 2020

Olá pessoal, tudo bem?

Todos nós sabemos da importância de desenvolver nossos testes de unidade, pois isso faz com que nosso desenvolvimento seja mais rico, e também minimizamos vários problemas que podem acontecer.

Utilizamos alguns frameworks para nos auxiliar a desenvolver esses testes de unidade como por exemplo: NSubstitute, FluentAssertions, Mock e entre outros.

E que tal, ter um plugin no Visual Studio para criar de forma automática, pelo menos os métodos com o pattern AAA(Arrange, Act and Assert), e as inversões de controle para serem mocadas?

Sim, existe um plugin que está no marketplace do Visual Studio que faz isso, e ajuda e muito a velocidade no desenvolvimento dos testes unitários.

Lembrando que é uma ajuda, e o plugin não vai fazer tudo sozinho. Você tem que entender, se o teste está fazendo o que deverá fazer. Em algumas situações somente com alguns ajustes, seu teste estará pronto.

Vamos para um exemplo simples;

Inicialmente vamos instalar esse plugin.

Caso esteja com o Visual Studio aberto, feche para fazer a instalação;

Faça o download do arquivo .vsix

Arquivo de extensão .vsix, são arquivos de instalação de plugin para o Visual Studio.

Depois do download, clique no arquivo para iniciar a instalação e depois conclua a instalação.

Abra o Visual Studio, e vá no menu superior, e veja se a instalação deu certo no menu Extensions > ManageExtensions

Plugin instalado com sucesso.

Agora em meu projeto, adicionei um projeto de teste unitário com xUnit e adicionei as referencias do NSubstitute e FluentAssertions.

Para usar o plugin, basta ir na classe que você quer realizar o teste, e clicar com o botão inverso do mouse e clicar na opção ”Create Unit test Boilerplate”

O plugin detectará que você está usando o NSubstitute para realizar a inversão de controle, para mocar suas interfaces, e os testes utilizando xUnit

Clique no botão “Create Unit Test Class”, e veja que o plugin criou uma classe de teste

Ao executar os testes, veja que foram todos executados com erro:

Como disse anteriormente, ele não faz tudo sozinho, mas nos ajuda a ter um pouco mais de velocidade. Os erros são que o retorno, não é o esperado, como neste exemplo:

Percebam que, não existe o mock do que deveria ser retornado, pelo método GetByIdAsync(). E o assert, está retornando false. Então vamos alterar esse teste para que ele funcione corretamente.

Depois da alteração:

Fizemos o mock da classe que será retornada ao método GetByIdAsync(), e testamos seu retorno no assert, e assim dessa forma o método desse teste, executou com sucesso.

Novamente enfatizo que esse plugin, nos ajuda a ter uma velocidade maior em nossos desenvolvimento de testes, e ele sozinho não irá fazer nada. Com pequenos ajustes como vimos, podemos ser mais rápidos com esse plugin.

Espero que tenham gostado dessa dica.

Até a próxima!

--

--

Fernando Mendes
JunDevelopers

Software Architect .NET C# | Microsoft MVP 🏆🏆 | Co-Founder community JunDevelopers