Junior — Middle
¿Cómo implementas objetos sustitutos para las pruebas unitarias?
sobes.tech AI
Respuesta de la IA
En Go, para las pruebas unitarias, los objetos sustitutos (mocks, stubs) generalmente se implementan mediante interfaces.
- Define una interfaz que describa el comportamiento necesario.
- Crea una estructura que implemente esa interfaz, con la lógica necesaria para la prueba.
Ejemplo:
package service
type Database interface {
GetUser(id int) (User, error)
}
type User struct {
ID int
Name string
}
// Implementación del objeto sustituto para la prueba
type MockDB struct {}
func (m *MockDB) GetUser(id int) (User, error) {
return User{ID: id, Name: "Test User"}, nil
}
// En la prueba, se puede usar MockDB en lugar de la base de datos real
También se pueden usar bibliotecas externas para mocks, como gomock o testify/mock.