Junior — Middle
Πώς δοκιμάσατε τον κώδικα που αλληλεπιδρά με τη βάση δεδομένων;
sobes.tech AI
Απάντηση από AI
Για τον έλεγχο του κώδικα που αλληλεπιδρά με τη βάση δεδομένων σε Go, χρησιμοποιούνται διάφορες προσεγγίσεις:
- Mocking της βάσης δεδομένων — δημιουργία διεπαφών για την εργασία με τη βάση δεδομένων και αντικατάσταση των πραγματικών κλήσεων με mocks, ώστε να δοκιμάζεται η λογική χωρίς μια πραγματική βάση δεδομένων.
- Βάσεις δεδομένων δοκιμών — χρήση ξεχωριστής βάσης δεδομένων δοκιμών ή βάσεων σε μνήμη (π.χ., SQLite) για ενσωματωμένες δοκιμές.
- Μεταφορές με rollback — στις δοκιμές, ανοίγεται μια μεταφορά, εκτελούνται οι λειτουργίες και στο τέλος γίνεται rollback για να μην μολυνθεί το περιβάλλον δοκιμών.
Παράδειγμα χρήσης διεπαφής και mocks:
// Διεπαφή για εργασία με τη βάση δεδομένων
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Στις δοκιμές, δημιουργούμε mock
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test"}, nil
}
Αυτή η προσέγγιση επιτρέπει την απομόνωση του κώδικα που δοκιμάζεται από τη πραγματική βάση δεδομένων.