1 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
使您的處理程序成為包含處理程序依賴(lài)項(xiàng)的結(jié)構(gòu)上的方法:
type server struct {
srv *service
}
type service struct {
db *mongo.Database
}
func (s *server) PostUser(w http.ResponseWriter, r *http.Request) {
// Create user struct from request data...
if err := s.srv.CreateUser(u); err != nil {
// Error response.
}
// Success response.
}
func (s *service) CreateUser(u *user) error {
// ...
_, err := d.db.Collection("foo").InsertOne(r.Context(), user)
return err
}
func main() {
s := &server{
srv: &service{
db: getMongoDatabase(),
},
}
r := mux.NewRouter()
r.HandleFunc("/user", s.PostUser).Methods("POST")
log.Fatal(http.ListenAndServe("localhost:8081", r))
}
在您的測(cè)試代碼中,您可以簡(jiǎn)單地注入一個(gè)不同的數(shù)據(jù)庫(kù),讓您的測(cè)試在該數(shù)據(jù)庫(kù)上運(yùn)行。
- 1 回答
- 0 關(guān)注
- 122 瀏覽
添加回答
舉報(bào)