TKC Works

ギジュツ的なメモ、読書感想文など

RspecでJSONをPOSTするコントローラをテストする

APIのときとかJSONをPOSTするテストはこのようにかけばOK。

post :your_method, { hello: 'world' }.to_json

たぶんRails5ならこんな警告がでる

DEPRECATION WARNING: ActionController::TestCase HTTP request methods will accept only
keyword arguments in future Rails versions.

Examples:

get :show, params: { id: 1 }, session: { user_id: 1 }
process :update, method: :post, params: { id: 1 }

body:をつけてあげればOK。

post :your_method, body: { hello: 'world' }.to_json