Sobes.tech
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.

  1. Define una interfaz que describa el comportamiento necesario.
  2. 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.