NestJS, testando aplicações com Jest

vamos aprender sobre o NestJS, como foco no teste das aplicações focado na parte do Mongoose

Introdução

Expressarrow-up-right foi criando para facilitar a manipulação do NodeJSarrow-up-right. Apesar de todas a facilidades, alguns pontos deixam a desejar. O NestJS foi criado para tentar melhorar esses pontos, como foi TypeScriptarrow-up-right para melhorar o JavaScriptarrow-up-right. Não vamos entrar nos pormenores, vamos direto ao ponto!😁😁

circle-info

Sugestão de leitura: Learn TypeScript 3 by Building Web Applications: Gain a Solid Understanding of TypeScript, Angular, Vue, React, and NestJS Book by Alexis Georges and Sebastien Dubois

Apesar de que não vamos entrar nos pormenores, gostaria deste tutorial ser o mais completo possível, para facilitar o aprendizado!😎😎

Criando um aplicativo NestJS do zero

Adoraria fazer essa parte grande, para parecer que estou ensinando algo, contudo, somente uma linha de código e você tem uma aplicativo funcional!😂😂 Não dá para ganhar dinheiro dos trouxas assim! 🤣🤣

nest new project-name
circle-info

Vai demorar um pouco para instalar, como o Angular. São parecidos de propósito. O NestJS está no meio termo, entre Angular e Express, acho perfeito para os adeptos do MEAN stack como eu! 🥰🥰🥰

Esta é uma aplicação funcional, tente:

npm start

Vai para a porta 3000

circle-info

Para quem é programador Angular, você vai se pegar confundindo: onde estou??? frontend ou backend??? parece o mesmo, mas você está no servidor!!! 😯😯😯

Contudo, vamos trabalhar com testes, rode:

npm run test:watch
circle-info

Lembra no curso que precisávamos ficar criando esses comandos no package.json, o pessoal do Nest já cria tudo!! 🙏🙏🙏 Soma o tempo que perdia com isso e vai assisti Netflix, programador também é filho de Deus😍😍

Sugestão: Scorpionarrow-up-right,

circle-info

Se quiser, pode deixar a aplicação rodando, somente abra uma nova aba. No visual studioarrow-up-right isso é bem simples.

Hierarquia de arquivos depois de terminado a instalação do aplicativo padrão
circle-info

Todo nosso trabalho está na pasta src. Note que os arquivos de testes estão como spec, falamos isso no curso, é a mesma coisa! 😁 Note também que temos uma pasta test, esse para contém testes e2earrow-up-right, não vamos abordar isso. 😅

Sequência de eventos, dependência entre arquivos, no nosso aplicativo padrão

Alguns pontos que merecem atenção🧐🧐:

  • ts significa typescript , que é a linguagem base do Nest;

  • service.ts é um tipo de arquivo conhecido como serviço, base do Angular. Isso facilita o processo de mocar, além de facilitar a conexão como MongoDB por o fazer em background;

Abaixo, para efeito de curiosidade, uma arquivo de teste padrão. Como se pode ver, testes já é incorporado no Nest, ou seja, o Nest já nasceu pensando em TDD! 😍😎🥰

circle-info

Linha 18 testa se o método appController.getHello(). Tenta mudar ou o esperado, toBe('Hello World!'), ou o retornado pelo método🤔🤔🤔 . Vai falhar, ao menos eu teoria. Essa é uma excelente forma de testar o seu teste!

Obs. abaixo uma giff da Mônica usando um aspirador para aspirar outro aspirador, seria o caso de um teste para testar o teste; afinal de contas, o teste precisa funcionar, sendo assim, ser testado também!

Mônica em Friends com um aspirador para aspirador!

O que vamos fazer é criar nossos próprios testes usando esses arquivos criados de forma automática.

Last updated