我仍然是Golang的新人。您对如何在Go测试文件中有效创建多个httptest.NewRequest有任何想法吗?通常我会发起一个新变量二创建新请求。
例如 :
r1 := httptest.NewRequest("GET", url, nil)
r1.Header.Add("Accept-Language", "id")
r1.AddCookie(&cookie)
r2 := httptest.NewRequest("GET", url, nil)
r1.Header.Add("Accept-Language", "id")
所以我想创建2个不同的请求,实际上我必须启动2个变量才能生成新的请求。我也使用测试表,因此在第一次测试运行后我无法添加cookie。
没有理由优化性能测试,因为测试不会编译到您的应用程序中,并且它们不会与您的应用程序一起运行;只是不要做“毫无意义”的慢事。它们“离线”运行以验证应用程序的正确性,因此测试的性能无非接近。
因此,请将您的测试编写为干净且简洁的源代码。
但话虽如此,您可以创建一个实用程序函数来创建和设置类似的请求,例如:
func newRequest(url string) *http.Request {
r := httptest.NewRequest("GET", url, nil)
r.Header.Add("Accept-Language", "id")
return r
}
并用它来重建你的例子:
r1 := newRequest(url)
r1.AddCookie(&cookie)
r2 := newRequest(url)