TL;DR
- rubocop 0.44.0 以降を Rails 4.x で使うと
HttpPositionalArguments
になる。 - rubocop gem の
TargetRailsVersion
の設定が足りてないためであり、0.48.0 で修正された。
rubocopのチェックが通らない
初めてpost系の request spec を書いた結果、rubocop のチェックが Rails/HttpPositionalArguments: Use keyword arguments instead of positional arguments for http call
となり失敗するようになった。どうやら、rubocop 0.44.0 から新たに追加されたチェックらしい。
Class: RuboCop::Cop::Rails::HttpPositionalArguments — Documentation for rubocop (0.44.0)
# bad
get :new, { user_id: 1}
# good
get :new, params: { user_id: 1 }
しかし上記の通りに書き換えると次は rspec が通らなくなった。もう少し調べてみると、Rails 5 からの記法なのに誤検知されるバグということがわかった。
一旦設定をオフにすることで回避。
Rails/HttpPositionalArguments:
Enabled: false
UPDATE: 0.48.0 で修正されており、現在は rubocop のバージョンをアップグレードすることで対応が可能。