Sobes.tech
Middle+

O que é um mock (simulação)?

sobes.tech IA

Resposta da IA

Mock (moc) — é um objeto de substituição que imita o comportamento de um objeto real nos testes. Os mocks são usados para isolar o código testado de dependências externas, para verificar a lógica sem executar operações complexas ou externas.

Em Go, os mocks são frequentemente criados manualmente ou com geradores (por exemplo, mockgen). Eles implementam interfaces usadas pelo código testado e permitem definir chamadas esperadas e valores de retorno.

Exemplo de um mock simples de uma interface:

// Interface
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Mock
type MockUserRepo struct {
    Users map[int]*User
}

func (m *MockUserRepo) GetUser(id int) (*User, error) {
    if user, ok := m.Users[id]; ok {
        return user, nil
    }
    return nil, errors.New("utilizador não encontrado")
}

Este mock pode ser usado em testes para controlar o comportamento do repositório sem uma base de dados real.