ruby-on-rails - 如何使用 Rspec 检查方法内的请求标头?
问题描述
我有一个方法会影响其他 API。我做了一个条件来决定在发布到该 API 时将使用哪个身份验证令牌。例子:
class OrderFee
def perform
get_pricing
end
private
def get_pricing
payload = {
from: "a",
to: "b"
}
authorization = ''
if Config.UsingFirstToken?
authorization = "first_token"
else
authorization = "second_token"
end
response = Connection.MyCourier.post(url, payload) do |req|
req.headers['Authorization'] = authorization
end
response.body
end
end
我想使用 Rspec 制作 2 个测试用例,以确保如果为Config.UsingFirstToken
真,它将使用 API 访问 API first_token
,否则。我可以检查此方法的返回值,但我找不到expect
从该 POST 操作中获取标题的方法
解决方案
您可以访问规范中的请求对象。
期望标题等于这样:
expect(request.headers['Authorization']).to eq("first_token")
或者你期望的令牌是什么。
推荐阅读
- python - 遍历对结果和下一个值进行操作的列表
- r - 使用 ggplot 和 shiny 获取条形图中的特定值时出错
- bixby - 防止值编译错误
- php - Codeigniter 4 cookie 问题无法设置
- javascript - 将 JS 测验的正确答案设为绿色,将错误答案设为红色
- java - Java 中 x + x 和 2*x 的区别
- python - REST API url 设计
- python - 使用 Plotly 和 Flask 的雷达图
- postgresql - 如何设置创建某些行的日期?我试图在 PostgreSQL 中只使用触发器和函数
- bash - 如何复制特定文本下方的特定行?