ruby-on-rails - 如何在 Rails 测试中设置 request_id
问题描述
我有一些依赖于request_id
设置的代码,但是在 RSpec 3.8 和 Rails 5.1 中进行测试时request_id
没有设置。它适用于开发和生产。
我尝试X-Request-Id
在规范文件中手动设置标题,但它不起作用。
我不确定这是测试环境中的 Rails 问题还是由 RSpec 引起的。
在我的规范中:
request.headers.add('X-Request-Id', SecureRandom.uuid)
patch model_update_path(model), params: { model: { attr: 'changed' }}
... # actual tests
在我的控制器中
...
def update
logger.info "Request Id: #{request.request_id}"
logger.info "X-Request-Id: #{request.header['X-Request-Id']}"
... # actual logic
end
...
第一行不记录任何内容,而第二行记录随机 uuid。
我希望该request.request_id
方法为测试环境中的每个请求返回一个唯一的 uuid。
解决方案
尝试这个:
patch model_update_path(model), { params: { model: { attr: 'changed' }, 'X-Request-Id' => SecureRandom.uuid }
推荐阅读
- django - 使用 Django Rest Framework Simple JWT TokenRefresh 返回用户名和 ID
- c - 如果用户输入了非整数,如何重新请求用户输入
- python - Pandas:如何在组内进行值计数
- sql - 如何将结果插入所需的行?SQL 服务器
- python - 将新数据添加到现有 Excel 文件的更快方法?
- excel - Excel-VBA循环工作表
- python - 将函数绑定为在除 first 以外的位置接收“self”的方法
- ruby-on-rails - Rails AJAX 渲染错误 ActionView::Template::Error (undefined local variable or method 'object')
- wordpress - Woocommerce“属性类型复选框”未显示
- php - 如何在 php 中获取本地时区名称?