Ruby初学者です。
現在ポートフォリオのテストをRspecで作成中です。
ご教授頂けますと幸いです。
【困ったこと】
Rspec(controller spec)でテストが通らない。
SNSのようなサービスで、投稿を投稿できるか?のテストをしています。
【エラー内容】
引数の数が合わないというエラーが出ていますが、どのように解決しればいいか分かない状態です。
Failure/Error: expect{ post :create, params: {post: post_params} }.to change(user.posts, :count).by(1) ArgumentError: wrong number of arguments (given 2, expected 0)
【コード】
posts_controller_spec
let!(:user){ create(:user) } let!(:post){ create_list(:post, 3, user: user) } ・ ・ ・ describe "#create" do context "登録済みのユーザー" do it "投稿の成功" do post_params = FactoryBot.attributes_for(:post) sign_in user expect{ post :create, params: {post: post_params} }.to change(user.posts, :count).by(1) end end end
posts_controller.rb
def create @post = Post.new(post_params) if params[:images] if @post.save params[:images].each do |img| @post.photos.create(image: img) end else end redirect_to posts_path flash[:notice] = "投稿が保存されました" else redirect_to posts_path flash[:alert] = "投稿に失敗しました" end end
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。