Neste projeto, iremos desenvolver uma API com FastAPI utilizando o Test-Driven Development (Desenvolvimento Guiado por Testes ou simplesmente TDD) que é uma metodologia que prioriza a criação de testes antes do código, vamos entender como criar tests com o pytest
. Construindo testes de Schemas, Usecases e Controllers (teste de integração).
- Python
- TDD com FastAPI + Pytest;
- Docker
- Pydantic
- Pyenv + Poetry
- Make
- MongoDB
- Git e Github
O TDD segue um ciclo de três etapas principais, conhecido como Red-Green-Refactor:
1 - Red (Vermelho - Escrever o teste)
- Escreva um teste unitário para a funcionalidade desejada.
- Execute o teste e verifique que ele falha (já que o código ainda não foi implementado).
2 - Green (Verde - Fazer o teste passar)
- Implemente o código mÃnimo necessário para que o teste passe.
- Execute os testes novamente e verifique que o código está funcionando.
3 - Refactor (Refatoração)
- Refatore o código para melhorar sua estrutura e qualidade sem alterar sua funcionalidade.
- Execute os testes novamente para garantir que tudo ainda funciona corretamente.
Esse ciclo é repetido continuamente durante o desenvolvimento.
![]() |
---|
Diagrama de C4 da Store API |
![]() |
---|
Database - Store API |
Vamos utilizar Pyenv + Poetry, link de como preparar o ambiente abaixo:
oficial
Obs.: Caso queira acessar o banco direto pelo vscode recomendo usar a extensão do MongoDB
docker-compose up -d
docker-compose down
[ "$(docker ps -q)" ] && docker stop $(docker ps -q); [ "$(docker ps -aq)" ] && docker rm $(docker ps -aq); [ "$(docker images -q)" ] && docker rmi $(docker images -q); docker network prune -f