新しいブログ投稿を作成するコントローラ作成アクションがあり、投稿が正常に保存された場合は追加のメソッドを実行します。
作成したい投稿のパラメーターを含む別のファクトリーガールファイルがあります。FactoryGirl.create は、コントローラーの create アクションではなく、ruby create メソッドを呼び出します。
RSpec のコントローラーから create アクションを呼び出すにはどうすればよいですか? そして、工場の女の子factories.rb
ファイルのパラメーターをどのように送信しますか?
posts_controller.rb
def create
@post = Post.new(params[:post])
if @post.save
@post.my_special_method
redirect_to root_path
else
redirect_to new_path
end
end
仕様/リクエスト/post_pages_spec.rb
it "should successfully run my special method" do
@post = FactoryGirl.create(:post)
@post.user.different_models.count.should == 1
end
post.rb
def my_special_method
user = self.user
special_post = Post.where("group_id IN (?) AND user_id IN (?)", 1, user.id)
if special_post.count == 10
DifferentModel.create(user_id: user.id, foo_id: foobar.id)
end
end
終わり