7 pontos por tothefullest08 2025-03-23 | Ainda não há comentários. | Compartilhar no WhatsApp

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.

Ainda não há comentários.