1. Visão geral
- Compartilhamento de como construir testes unitários no modelo Sociable Test (com integração ao DB real)
- ORMs como o TypeORM têm problemas de segurança de tipos, por isso testes com DB real são necessários
2. Solitary Test vs Sociable Test
- Comparação
- Solitary Test substitui dependências por mocks para testar de forma isolada (é rápido, mas pode haver diferenças em relação ao ambiente real)
- Sociable Test testa junto com dependências externas reais (DB), o que permite garantir confiabilidade (é mais lento, mas encontra problemas reais mais cedo)
- Limitações do Solitary Test
- Só com mocking é difícil detectar perfeitamente problemas de interação com o DB real
- Problemas de checagem de tipos no TypeORM podem causar erros em tempo de execução
- Necessidade do Sociable Test
- A integração com o DB real permite validar consultas complexas, transações e problemas na configuração de relacionamentos
- É possível configurar um banco de testes e executar testes com isolamento de dados usando transações
- Vantagens e cuidados do DB Sociable Test
- Vantagens: testes mais confiáveis, detecção antecipada de problemas relacionados ao ORM, verificação de incompatibilidades de schema
- Cuidados: testes mais lentos, configuração de ambiente mais complexa, necessidade de gerenciar transações
3. Implementação de testes com integração ao DB no NestJS
- Configuração
- Configuração da conexão com um banco de testes usando MySQL
- Uso de transações para fazer rollback das alterações de cada teste
- Uso do ciclo de vida do framework de testes Jest
- Uso de
beforeAll / beforeEach / afterEach / afterAll
- Configuração da inicialização e conexão com o DB, e do início e fim das transações
4. Conclusão
- Ao escrever testes unitários, é recomendável combinar Solitary Test e Sociable Test de forma adequada
- Sociable Test pode ser uma grande ajuda para evitar problemas relacionados ao ORM
Ainda não há comentários.