Sobes.tech
Junior — Middle

Como você realizou os testes do código que interage com o banco de dados?

sobes.tech IA

Resposta da IA

Para testar o código que interage com a base de dados em Go, utilizam-se várias abordagens:

  • Mocking da base de dados — criar interfaces para trabalhar com a base de dados e substituir as chamadas reais por mocks, para testar a lógica sem uma base de dados real.
  • Bases de dados de teste — usar uma base de dados de teste separada ou bases em memória (por exemplo, SQLite) para realizar testes de integração.
  • Transações com rollback — nos testes, abrir uma transação, realizar operações e, ao final, reverter as alterações para não contaminar o ambiente de teste.

Exemplo de uso de interface e mocks:

// Interface para trabalhar com a base de dados
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Nos testes, criar um mock
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
    return &User{ID: id, Name: "Test"}, nil
}

Este método permite isolar o código testado da base de dados real.