2017-12-18 269 views
0

我在Golang中还是个新手。对于如何在Go测试文件中有效创建多个httptest.NewRequest,你有什么想法吗?通常我会发起一个新的变量two创建新的请求。Go Test中的多个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。

回答

3

没有理由优化性能测试,因为测试不会被编译到您的应用程序中,并且它们不会与您的应用程序一起运行;只是不要做“毫无意义”的缓慢的事情。他们运行“离线”来验证您的应用程序的正确性,因此测试的性能无处不在。

因此,编写测试在源代码中干净和短小。

但是他这样说,你可以创建一个效用函数来创建和设置类似的要求,例如:

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) 
+0

好感谢这个建议,我也在考虑为重复测试创建一个小函数。 :) – fauzanrazandi