Unitários = Testam um componente/funcionalidade de forma isolada. Integração = Testa como um ou mais componentes/funcionalidades se 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 pra enviar a transação
- 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)