go - 如何在 golang 中测试 http.Redirect 目标 URL
问题描述
我已经在 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)
解决方案
断言Location标头符合预期:
assert.Equal(t, expectedURL, resp.HeaderMap.Get("Location"))
推荐阅读
- c# - C#在具有容差的图像中查找图像
- php - `preg_split` 在什么情况下可能返回 `false`
- python - Python:如何从请求标头中提取值?
- python-3.x - 运行 keras model.fit_generator 后需要帮助纠正错误
- firefox - Heroku 托管页面抛出错误 - navigator.mediaDevices 未定义
- python-3.x - python中连接失败时如何重新连接到websocket
- php - AngularJS 反序列化 PHP 字符串
- python - 多处理问题
- filesystems - 如何在 elixir 中创建相同的目录名称?
- java - OrdImage LoadFromFile 异常