去Martini单元测试示例

时间:2015-06-20 19:24:59

标签: unit-testing go martini

我是Go的新手,想知道有没有关于如何测试Go Martini的Handler代码的例子/标准?

提前感谢你!

1 个答案:

答案 0 :(得分:2)

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

e.g。

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`)
}

总结:

  1. 使用martini.Classic()
  2. 创建服务器
  3. 创建一个指向要测试的处理程序的路径
  4. 针对响应记录器执行
  5. 检查响应记录器上的结果(状态代码,正文)是否符合预期。