[Dica Rápida] — Utilizando o Unit Test Boilerplate Generator
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
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!