rails rspec 非同期通信のためのテストコード
非同期通信のためのテストコードを書くときに少し詰まったので解決策をメモしておきます。
環境
- rails 2.5.3
## コード
require 'rails_helper'
RSpec.describe 'Messages', type: :request do
let(:user) { create(:user, :with_message_group) }
let(:params) { { message: { message: "good"} } }
before do
sign_in(user)
end
describe "create message" do
it "create message" do
post message_group_messages_path(message_group_id: user.message_groups.first.id), xhr: true, params: params
end
end
end
ポイントは下のコードの部分です。
it "create message" do
post message_group_messages_path(message_group_id: user.message_groups.first.id), xhr: true, params: params
end
xhr: trueにすることで非同期通信でテストができます。
また文法の面でも詰まったのでそこも少し。
it "create message" do
post message_group_messages_path(message_group_id: user.message_groups.first.id), xhr: true, params
end
最初paramsのところをこんな感じに書いていたのですが、シンタックスエラーが出てました。エラー文読んでもわからなくて冷静に見直したら
params: params
このように書かないといけないですね、気をつけないと。
## 参考