Junior — Middle
Como implementas objetos substitutos para testes unitários?
sobes.tech IA
Resposta da IA
Em Go, para testes unitários, objetos substitutos (mocks, stubs) são geralmente implementados usando interfaces.
- Defina uma interface que descreva o comportamento necessário.
- Crie uma estrutura que implemente essa interface, com a lógica necessária para o teste.
Exemplo:
package service
type Database interface {
GetUser(id int) (User, error)
}
type User struct {
ID int
Name string
}
// Implementação do objeto substituto para o teste
type MockDB struct {}
func (m *MockDB) GetUser(id int) (User, error) {
return User{ID: id, Name: "Test User"}, nil
}
// No teste, pode-se usar MockDB em vez do banco de dados real
Também é possível usar bibliotecas externas para mocks, como gomock ou testify/mock.