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 }