2017-01-17 10 views
0

私のコントローラとテストファイルは以下の通りです。Rspecコントローラのテストが成功しません

コントローラ/ reports_controller.rb:

def index 
    @reports = Report.all 
    end 

スペック/コントローラ/ reports_controller_spec.rb:

RSpec.describe ReportsController, type: :controller do 
    let(:test_report) { 
    2.times.map { 
     create(:report, student: create(:student), report_options_attributes: [ 
     {option: create(:option), note: "ole" } 
     ]) 
    } 
    } 

    describe "GET #index" do 
    before(:each) do 
     get :index 
    end 

    it "should be success" do 
     expect(response).to be_success 
    end 

    it "should render index template" do 
     expect(response).to render_template(:index) 
    end 

    it "should load all reports" do 
     expect(assigns(:report)).to match_array test_report 
    end 
    end 

最後のテストが動作していないが、それが動作するはずです。何が問題なの?

答えて

0

あなたのvarはコントローラとは異なります。レポートの代わりに次のようなレポートを使用してください。

it "should load all reports" do 
     expect(assigns(:reports)).to match_array test_report 
    end 

+0

うん、それはうまくいった。ありがとう – Thatsthati

2

インデックステストが空です。あなたは何かをアサートする必要があります。

インデックス機能にassert_response :successを追加できますか?

+0

最初の2つのテストは合格です。最後の1つではありません。 – Thatsthati

関連する問題