Rails 5测试的弃用警告
我正在尝试从rails 4.2.6更新到rails 5.0.0.1,但在运行我的测试时会收到以下警告:
弃用警告:ActionController :: TestCase HTTP请求方法在将来的Rails版本中只接受关键字参数。
例子:
get:show,params:{id:1},session:{user_id:1} process:update,method :: post,params:{id:1}(从/ home / ubuntu / workspace / my_app /中的块调用测试/控制器/ tractions_controller_test.rb:25)
我一直在进行适当的更改以适应这种变化。 但是对于下面的集成测试行,我不知道如何正确更改它:
delete api_sessions_path, { api_session: { org_id: nil } }, { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email }
所以测试通过但是有弃用警告。 如果我将其更改为下面的两个选项,则测试将失败并出现语法错误。 如何正确调整线?
delete api_sessions_path, params: { api_session: { org_id: nil } }, { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email } delete api_sessions_path, params: { { api_session: { org_id: nil } }, { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email } }
更新 :我也尝试使用以下选项的session
但产生错误ArgumentError: unknown keyword: session
。
delete api_sessions_path, session: { api_session: { org_id: nil } }, params: { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email } delete api_sessions_path, params: { api_session: { org_id: nil } }, session: { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email } delete api_sessions_path, params: { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email }, session: { api_session: { org_id: nil } } delete api_sessions_path, session: { api_session: { org_id: nil } }, { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email }
我找到了解决方案。 必须添加headers
标签:
delete api_sessions_path, params: { api_session: { org_id: nil } }, headers: { "HTTP_API_TOKEN": "token", "HTTP_USER_EMAIL": @user.email }