簡単なuser登録apiのテストコードを書いています。
api
1module Api 2 module V1 3 class adduser < ReactApplicationController 4 protect_from_forgery 5 6 def create 7 val = JSON.parse(request.body.read) 8 User.find_or_create_by(id: val['id'], company_id: val['company_id'].to_i) 9 head :ok 10 end 11 end 12 end 13end
上記のpostレコードのテスト
test
1describe "test" do 2 json_body = { id: '1', company_id: '1' } 3 4 it 'add record' do 5 expect { post '/api/v1/add_user', params: { user: json_body }, as: :json }.to change(User, :count).by(+1) 6 end 7 end
rspecテスト内でparamsにパラメーターを付与してpostしているにも関わらず、データが増えたことを検証できません。
responseは200が返っています。
rspecのrequestsに詳しい方ご回答いただけると幸いです。
####エラー
expected User.count
to have changed by 1, but was changed by 0
あなたの回答
tips
プレビュー