19
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[RSpec] Ajaxのテストの書き方

Posted at

はじめに

いいね機能やフォロー機能をajaxで作る時、Request specではどう書くかわからず
困ったので、メモしておきます。

結論

結論から言うとこのような形で書くと、ajaxで書いた機能をテストできます。
今回はいいね機能のテストを書いております。
いいね機能についてはこちらの記事を参考に作りました。
[Rails]いいね機能の非同期での実装!!!

(前提としてlike_pathのrouteにはusernamepost_idが表示されるようにしているため、FactoryBotでuserとそのpostを作り、そのpostにいいねできることをテストしております。)

it "いいねしていない場合、いいねができること" do
  expect do
    post like_path(username: user.user_name, post_id: 1), xhr: true
  end.to change(Like, :count).by(1)
end

このxhr: trueを書かないと下のエラーが出てしまいます。

 ActionController::UnknownFormat:
       LikesController#like is missing a template for this request format and variant.

       request.formats: ["text/html"]
       request.variant: []

xhr: trueを書くだけでテストがうまく通るのですが、調べてもすぐには分からず時間がかかってしまいました。
以上です!

19
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?