gpt4 book ai didi

unit-testing - Go Test 中具有不同条件的多个 httptest.NewRequest

转载 作者:IT王子 更新时间:2023-10-29 02:32:04 25 4
gpt4 key购买 nike

我对 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)

关于unit-testing - Go Test 中具有不同条件的多个 httptest.NewRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47865060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com