Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/diego64/api-node-com-tdd
Desenvolvendo uma API Node.JS utilizando TDD onde foram criados alguns testes simulando algumas situações que passam desde falha do programador até uma falta de algum paramento de envio de informação.
https://github.com/diego64/api-node-com-tdd
Last synced: 9 days ago
JSON representation
Desenvolvendo uma API Node.JS utilizando TDD onde foram criados alguns testes simulando algumas situações que passam desde falha do programador até uma falta de algum paramento de envio de informação.
- Host: GitHub
- URL: https://github.com/diego64/api-node-com-tdd
- Owner: diego64
- License: mit
- Created: 2020-07-06T17:14:45.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T03:26:14.000Z (almost 2 years ago)
- Last Synced: 2024-10-12T02:52:59.161Z (25 days ago)
- Language: JavaScript
- Homepage:
- Size: 751 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
✅ API Node.Js aplicando TDD ❌
Tecnologias |
Projeto |
Desenvolvimento |
Resumo dos conceitos |
## 🎮 Tecnologias
Esse projeto foi desenvolvido com as seguintes tecnologias:
- [Node.js](https://nodejs.org/en/)
- [Jest](https://jestjs.io/)
- [Huskyrc](https://github.com/typicode/husky)
- [JSON Web Token](https://jwt.io/)
- [Bcrypt](https://www.npmjs.com/package/bcrypt)
- [MongoDB](https://www.mongodb.com/)## 📦 Projeto
Testes em aplicações é uma das fases mais importante no processo de desenvolvimento de um sistema. Durante essas últimas semanas foquei em me aprofundar em em TDD. Desenvolvi uma aplicação backend com Node.Js com a função de cadastrar e validar usuários mas antes de começar a desenvolver as rotas e escolher o banco de dados, realizei alguns testes simulando diversas situações que vão de falhas no desenvolvimento ou possíveis erros de envio de dados.
A API utiliza o Jest como principal dependência no desenvolvimento. Através dela é possível desenvolver testes personalizados em cima de uma situação criada pelo desenvolvedor. Já o Huskyrc, permiti dentre várias opções, realizar testes antes de realizar um commit ou push dando total certeza que a sua aplicação está testada e funcionando conforme o esperado.
## 🎯 Resumo dos conceitos
- TDD é uma sigla para Test Driven Development ou Desenvolvimento guiado por testes. Esse tipo de progamação tem o seguinte objetivo, tudo que for desenvolver é atravéis de um resultado de teste realizado. Esse teste são como uma busola para o programador pois atravéis dele é capaz de saber aonde e o porque de um erro está aparecendo.
- Ciclo do TDD - O TDD possui tres cilcos:
❌ - RED (Escreva um pequeno teste que o seu resutado apresentado seje uma falha)
✅ - GREEN ( Implemente um código que faça o teste reprovado seja aprovado )
🔎 - REFACTOR ( Refatore o código para que se torne mais limpo e funcional)- Teste Unitário - Esse tipo de teste tem o objetivo de verificar toda a aplicação verificando se tudo está funcionado conforme o planejado
- Teste de Integração - Esse tipo de teste tem o objetivo de verificar um grupo de arquivo especifico
## 🔥 Desenvolvimento
O projeto foi divido em 12 partes:
- Ajustando as configurações do Jest (Adcionando somente as funcionalidades que o projeto irá utilizar)
- Configurando os arquivos de config para os testes de integração e unitários
- Restruturação de pastas e criação de teste unitários em cima da classe de validação do email
- Criação da classe authUseCase, reoganização da estrutura de pasta e refatoração do cógigo
- Teste relacioanados a autenticação do usuário
- Desenvolvimento de testes em cima de dados com criptografia
- Criação dos testes baseados na utilização do Encrypt
- Refatoração do código e reorganização de estrutura de pastas (*)
- Elaboração de testes em cima do JWT
- Testes integrados com o Banco de Dados não relacional (Mongo DB)
- Desenvolvimento de teste sobre o acesso com token
- Elaboração do Composition Root