Unit testing Go测试中具有不同条件的多个httptest.NewRequest
我在戈兰还是新来的。关于如何在Go测试文件中高效地创建多个httptest.NewRequest,您有什么想法吗?通常我会启动一个新变量来创建新请求 例如:Unit testing Go测试中具有不同条件的多个httptest.NewRequest,unit-testing,go,Unit Testing,Go,我在戈兰还是新来的。关于如何在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("Acce
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)
并用它来重建您的示例:
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)
没有什么理由优化性能测试,因为测试不会编译到你的应用程序中,也不会与你的应用程序一起运行;只是不要做“愚蠢”的慢动作。他们“离线”运行以验证你的应用程序的正确性,所以测试的性能远不是关键 因此,编写测试时要简洁明了,源代码简短 但也就是说,您可以创建一个实用函数来创建和设置类似的请求,例如:
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)
并用它来重建您的示例:
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)
谢谢你的建议,我还在考虑为重复测试创建一个小函数。:)谢谢你的建议,我还在考虑为重复测试创建一个小函数。:)