Sobes.tech
Middle+

Τι είναι ένα mock (ψεύτικο);

sobes.tech AI

Απάντηση από AI

Mock (moc) — αυτό είναι ένα αντικείμενο αντικατάστασης που μιμείται τη συμπεριφορά ενός πραγματικού αντικειμένου στις δοκιμές. Τα mocks χρησιμοποιούνται για την απομόνωση του κώδικα που δοκιμάζεται από εξωτερικές εξαρτήσεις, ώστε να ελέγχεται η λογική χωρίς να εκτελούνται πολύπλοκες ή εξωτερικές λειτουργίες.

Στη Go, τα mocks δημιουργούνται συχνά χειροκίνητα ή με τη βοήθεια γεννητριών (π.χ., mockgen). Υλοποιούν διεπαφές που χρησιμοποιεί ο κώδικας που δοκιμάζεται και επιτρέπουν τον ορισμό αναμενόμενων κλήσεων και επιστρεφόμενων τιμών.

Παράδειγμα απλού mock μιας διεπαφής:

// Διεπαφή
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("χρήστης δεν βρέθηκε")
}

Αυτό το mock μπορεί να χρησιμοποιηθεί σε δοκιμές για τον έλεγχο της συμπεριφοράς του αποθετηρίου χωρίς μια πραγματική βάση δεδομένων.