我刚接触Go,想知道是否有任何约定/标准,以及有关如何测试Go Martini的Handler代码的示例?

预先感谢您!

最佳答案

martini-contrib库中有很多现有代码值得关注:https://github.com/martini-contrib/secure/blob/master/secure_test.go

例如

func Test_No_Config(t *testing.T) {
    m := martini.Classic()
    m.Use(Secure(Options{
    // nothing here to configure
    }))

    m.Get("/foo", func() string {
        return "bar"
    })

    res := httptest.NewRecorder()
    req, _ := http.NewRequest("GET", "/foo", nil)

    m.ServeHTTP(res, req)

    expect(t, res.Code, http.StatusOK)
    expect(t, res.Body.String(), `bar`)
}

总结:
  • 使用martini.Classic()创建服务器
  • 创建到要测试
  • 的处理程序的路由
  • 针对响应记录器
  • 执行
  • 检查响应记录器上的结果(状态代码,正文)是否符合预期。
  • 07-24 17:51