在Go Test中具有不同条件的多个httptest.NewRequest

问题描述 投票:0回答:1

我仍然是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。

unit-testing go
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.