1

我对 Go 很陌生,想知道是否有关于如何测试 Go Martini 的处理程序代码的示例的约定/标准?

提前谢谢你!

4

1 回答 1

3

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

总结:

  1. 创建一个服务器martini.Classic()
  2. 创建到要测试的处理程序的路由
  3. 对响应记录器执行它
  4. 检查响应记录器上的结果(状态代码、正文)是否符合预期。
于 2015-06-20T22:44:27.573 回答