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 μπορεί να χρησιμοποιηθεί σε δοκιμές για τον έλεγχο της συμπεριφοράς του αποθετηρίου χωρίς μια πραγματική βάση δεδομένων.