Sha*_*Wan 5 rspec ruby-on-rails ruby-on-rails-5
我有一个测试 POST 请求的请求测试规范。
在我的 PaymentController(处理 POST 请求)中,我有
before_action :require_user, :require_order
Run Code Online (Sandbox Code Playgroud)
它基本上根据会话获取用户和订单。
知道如何在我的请求测试规范中设置会话变量(user_id 和 order_id)吗?
从 Rails 5.0 开始,最好的方法是在控制器/请求测试中使用关键字参数:
get :index, params: { ... }, session: { user_id: 1, ... }
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 Devise、Clearance 等身份验证库,则有各种帮助程序可以对登录用户进行存根,请参阅此处的Devise文档:
before(:each) do
# or def setup if using minitest
@request.env["devise.mapping"] = Devise.mappings[:user]
sign_in User.create(...)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3466 次 |
| 最近记录: |