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.