Sobes.tech
Middle

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

sobes.tech IA

Resposta da IA

Um objeto simulado (mock) nos testes é um objeto especial que imita o comportamento de um componente ou módulo real do sistema. É usado para isolar o código testado de dependências externas, para verificar a lógica sem a influência de serviços ou recursos reais.

Por exemplo, se você tem uma função que acessa um banco de dados, nos testes, em vez de uma conexão real, pode usar um objeto mock que retorna dados predefinidos. Isso acelera os testes e os torna mais confiáveis.

Exemplo em Go usando interfaces e mocks:

// Interface para trabalhar com o banco
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Implementação mock
type MockUserRepo struct {}

func (m *MockUserRepo) GetUser(id int) (*User, error) {
    return &User{ID: id, Name: "Test User"}, nil
}

// No teste
func TestGetUserName(t *testing.T) {
    repo := &MockUserRepo{}
    user, err := repo.GetUser(1)
    if err != nil {
        t.Fatal(err)
    }
    if user.Name != "Test User" {
        t.Errorf("expected Test User, got %s", user.Name)
    }
}

Assim, objetos mock ajudam a criar um ambiente controlado para testes e a identificar erros na lógica sem depender de sistemas externos.