慕虎7371278
我找到了一种使用ginkgo 的方法。测试GET请求:Describe("GET /login", func() { It("response has http code 200", func() { request, _ := http.NewRequest("GET", "/login", nil) response := httptest.NewRecorder() beego.BeeApp.Handlers.ServeHTTP(response, request) Expect(response.Code).To(Equal(http.StatusOK)) })})测试POST请求:Describe("POST /login", func() { Context("when passwords don't match", func() { It("informs about error", func() { form := url.Values{ "password": {"foobar"}, "password-confirmation": {"barfoo"}, } body := strings.NewReader(form.Encode()) request, _ := http.NewRequest("POST", "/login", body) request.Header.Add("Content-Type", "application/x-www-form-urlencoded") response := httptest.NewRecorder() beego.BeeApp.Handlers.ServeHTTP(response, request) Expect(response.Code).To(Equal(http.StatusOK)) Expect(response.Body.String()).To(ContainSubstring("wrong passwords...")) }) })})同样在BeforeSuite我需要初始化路由器和调用beego.TestBeegoInit(<APP_PATH>)var _ = BeforeSuite(func() { routers.Initialize() // here calling router code beego.TestBeegoInit(AppPath())})