Rails5 RSpecでAjaxテストするとNoMethodError: undefined method `xhr'

現象

Rails 5.2 x RSpec 3.8 でAjax実装(viewでremote: trueにしてAjax通信)して、以下のような感じで書いてRSpecを実行すると、

xhr: post, message_likes_path(valid_attributes)
expect(response).to have_http_status(401)

以下のエラーが出力される。

1) LikesController POST #create when user is not logged in redirect to login page
Failure/Error: xhr :post, message_likes_path(valid_attributes)

NoMethodError:
   undefined method `xhr' for #<RSpec::ExampleGroups::LikesController::POSTCreate::WhenUserIsNotLoggedIn:0x007f8b513ea948>

原因

書き方が誤っていた。「xhr: true」にすることで解決。

post :create, xhr: true, params: { message_id: valid_attributes[:message_id] }
expect(response).to have_http_status(401)

参考サイト

How do you test an AJAX request with RSpec/RoR?