如何在 golang 中测试 http.Redirect 目标 URL

Chr*_*ang 1 testing go

我在 go 处理程序中设置了一个 http 重定向,我正在尝试验证目标 URL 是否按预期组成。我目前正在使用 httptest 进行相关的单元测试。

在处理程序中:

url := fmt.Sprintf("%s%s?token=%s", domain, someURL, token)
http.Redirect(w, r, url, 302)
Run Code Online (Sandbox Code Playgroud)

当前单元测试只能验证响应代码,不能验证目标 URL:

resp := httptest.NewRecorder()
router.ServeHTTP(resp, req)
assert.Equal(t, 302, resp.Code)
Run Code Online (Sandbox Code Playgroud)

我期待像

assert.Equal(t, expectedURL, resp.redirectURL)
Run Code Online (Sandbox Code Playgroud)

Cer*_*món 5

断言Location标头符合预期:

assert.Equal(t, expectedURL, resp.HeaderMap.Get("Location"))
Run Code Online (Sandbox Code Playgroud)