我已經(jīng)整理了一段代碼,它在我的路線上執(zhí)行 GET。我想使用模擬來測試這個。我是 Go 和測試菜鳥,因此非常感謝任何提示。My Generate Routes.go 為當前 URL 生成路由。片段:func (h *StateRoute) GenerateRoutes (router *martini.Router) *martini.Router { r := *router /** * Get all states * */ r.Get("/state", func( enc app.Encoder, db abstract.MongoDB, reqContext abstract.RequestContext, res http.ResponseWriter, req *http.Request) (int, string) { states := []models.State{} searchQuery := bson.M{} var q *mgo.Query = db.GetDB().C("states").Find(searchQuery) query, currentPage, limit, total := abstract.Paginate(req, q) query.All(&states) str, err := enc.EncodeWithPagination(currentPage, limit, total, states) return http.StatusOK, app.WrapResponse(str, err) })}這在我的 server.go 中被調用,如下所示:var configuration = app.LoadConfiguration(os.Getenv("MYENV"))// Our Martini API Instancevar apiInstance *martini.Martinifunc init() { apiInstance = martini.New() // Setup middleware apiInstance.Use(martini.Recovery()) apiInstance.Use(martini.Logger()) // Add the request context middleware to support contexual data availability reqContext := &app.LRSContext{ } reqContext.SetConfiguration(configuration) producer := app.ConfigProducer(reqContext) reqContext.SetProducer(producer) apiInstance.MapTo(reqContext, (*abstract.RequestContext)(nil)) // Hook in the OAuth2 Authorization object, to be processed before all requests apiInstance.Use(app.VerifyAuthorization) // Connect to the DB and Inject the DB connection into Martini apiInstance.Use(app.MongoDBConnect(reqContext)) // Add the ResponseEncoder to allow JSON encoding of our responses apiInstance.Use(app.ResponseEncoder)}我的疑惑:考慮到我正在嘗試注入依賴項,這里的模擬如何工作?我應該從哪里開始測試,即我應該在 Generate Routes 中模擬 r.Get 嗎?現(xiàn)在,我已經(jīng)這樣做了,但是由于我使用的是 Martini 來處理所有路由和請求,如果我所做的是正確的,我會丟失報價嗎?
- 1 回答
- 0 關注
- 263 瀏覽
添加回答
舉報
0/150
提交
取消