2016-04-16 28 views
0

私はRSpecを使ってRails 4アプリケーションをテストしています。私は "複数の選択"パラメータを投稿したいと思います。 paramsメソッドは、このようなものです:あなたがreceiversのparamを見ることができるようにRSpec testing:複数のパラメータをメソッドに投稿する

def general_mailing_params 
    params.require(:mailing).permit({:receivers => []}, :subject, :content) 
    end 

どのように私はRSpecのテストでのparamsのこの種を投稿することができ、複数の選択でしょうか?

答えて

3

RSpecコントローラと要求仕様では、単純に配列とハッシュを渡して、任意のparamsハッシュを作成できます。

コントローラ(機能)仕様:

require 'rails_helper' 
describe MailingsController do 

    let!(:receiver) { create(:receiver) } 

    describe 'POST :create' do 
    it "has the correct receivers" do 
     post :create, { mailing: { receivers: [receiver.id] } } 
     expect(Post.last.receivers).to eq [receiver] 
    end 
    end 
end 

要求(統合)スペック:あなたが適切なcollection_checkboxesとしてレール・コレクション・ヘルパーを使用している場合が

require 'rails_helper' 
describe 'Mailings' do 
    let!(:receiver) { create(:receiver) } 
    describe 'POST /mailings' do 
    it "has the correct receivers" do 
     post '/mailings', { mailing: { receivers: [receiver.id] } } 
     expect(Post.last.receivers).to eq [receiver] 
    end 
    end 
end 

ノートのparamキーはreceiver_idsする必要があります。

関連する問題