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

时间:2019-05-08 03:17:52

标签: go testing

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

在处理程序中:

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

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

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

我期待类似的东西

assert.Equal(t, expectedURL, resp.redirectURL)

1 个答案:

答案 0 :(得分:4)

确认Location标头符合预期:

assert.Equal(t, expectedURL, resp.HeaderMap.Get("Location"))