質問: Rspec 3.7 現在、rspecのrequest specを使用してエンドポイントのテストを作成しています。 そこで、ユーザーのサインアップのテストを行いたいのですが、`body`にemailとpasswordを入れてエンドポイントを叩きたいのですが、`body`にkeyとvalueを含める場合の書き方がわかりません。 headersへの含め方はわかるのでそれと同様にbodyに変えてやってみたのですがそれではできませんでした。 bodyにemailとpasswordを含めて、/api/v1/authのエンドポイントにpostすると、ユーザーが作成されるという仕様です。 テストの記述はこのようになってます。 ``` spec/requests/user_spec.rb it "ユーザー作成のテスト" do post '/api/v1/auth' expect(response).to have_http_status(200) #ユーザーが増える確認をどのようにするかまだ考えていないためこのようになってます。 end end ``` こちらがheaderを含めるのと同じ感じで書いて失敗した記述です。 ``` it "ユーザー作成のテスト" do post '/api/v1/auth', body: { 'email' => Faker::Internet.email, 'password' => 'fdsafdsa', 'password_confitmation' => 'fdsafdsa' } expect(response).to have_http_status(200) end #エラー文 Failure/Error: post '/api/v1/auth', body: { 'email' => Faker::Internet.email, 'password' => 'fdsafdsa', 'password_confitmation' => 'fdsafdsa' } ArgumentError: unknown keyword: body ``` どのように書いたら良いかわかる方いましたら教えていただきたいです。 よろしくお願いいたします。
回答: `post '/api/v1/auth', body: { 'email' => Faker::Internet.email, 'password' => 'fdsafdsa', 'password_confitmation' => 'fdsafdsa' }` のbodyをparamsに変更してみてください `post '/api/v1/auth', params: { 'email' => Faker::Internet.email, 'password' => 'fdsafdsa', 'password_confitmation' => 'fdsafdsa' }`