1 回答
TA贡献1802条经验 获得超6个赞
使您的处理程序成为包含处理程序依赖项的结构上的方法:
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))
}
在您的测试代码中,您可以简单地注入一个不同的数据库,让您的测试在该数据库上运行。
- 1 回答
- 0 关注
- 85 浏览
添加回答
举报