Unitários = Testam um componente/funcionalidade de forma isolada. Integração = Testa como um ou mais componentes/funcionalidades de comportam juntos(as). E2E = Simula o que um usuário vai fazer na nossa aplicação diariamente.
Unitários = Não Integração = Talvez E2E = Sim (não só Banco de Dados, QUALQUER CONEXÃO EXTERNA INCLUSIVE APIs)
- Realizar compra
- Cadastra usuário no banco
- Cadastra endereço no banco
- Se comunica com gateway de pagamento para enviar a transação
- Cielo <=> gateway <=> APP
- Cadastra a compra no banco
Unitário: Não tem banco de dados e nem API do Gateway E2E: Não é aconselhável ter mocks ou dados fakes
Gateway de pagamento: Conta de teste (API Key de Teste)
- Abstração da camada de comunicação com o banco de dados em repositórios
Escrita/Update/Delete SEM RETORNO (Comandos) Query trás o retorno
- Instale as dependências (ver seção de dependências)
- Comandos:
npx tsc --init
(inicializar o typescript)npx jest --init
(inicializar o jest)
- Altere o target, em "tsconfig.json" para 2018 ou 2020
- Copie o "transform" da documentação do Jest, vá em "jest.config.ts", procure o "transform", descomente e cole o:
transform: { "^.+\\.(t|j)sx?$": "@swc/jest", },
- Inicie o prisma com
npx prisma init