Junior — Middle
Ποιες βιβλιοθήκες χρησιμοποιήσατε για τη δημιουργία mock αντικειμένων στις δοκιμές;
sobes.tech AI
Απάντηση από AI
Στη Go, για τη δημιουργία αντικειμένων mock στις δοκιμές, συχνά χρησιμοποιούνται οι ακόλουθες βιβλιοθήκες:
- gomock — επίσημη βιβλιοθήκη της Google, επιτρέπει τη δημιουργία mocks βάσει διεπαφών με το εργαλείο mockgen.
- testify/mock — μέρος του δημοφιλούς πακέτου testify, παρέχει έναν βολικό τρόπο δημιουργίας mocks με δυνατότητα ορισμού προσδοκιών και ελέγχου κλήσεων.
Παράδειγμα χρήσης του testify/mock:
import (
"testing"
"github.com/stretchr/testify/mock"
)
type MyInterface interface {
DoSomething(int) string
}
type MyMock struct {
mock.Mock
}
func (m *MyMock) DoSomething(i int) string {
args := m.Called(i)
return args.String(0)
}
func TestMyFunction(t *testing.T) {
m := new(MyMock)
m.On("DoSomething", 123).Return("result")
res := m.DoSomething(123)
if res != "result" {
t.Errorf("μη αναμενόμενο αποτέλεσμα: %s", res)
}
m.AssertExpectations(t)
}
Αυτές οι βιβλιοθήκες βοηθούν στην απομόνωση του κώδικα που δοκιμάζεται από εξωτερικές εξαρτήσεις και στην επαλήθευση των αλληλεπιδράσεών του με αυτές.