2017-01-17 3 views
0

Mein Controller und meine Testdatei sind unten.Rspec Controller Test nicht bestanden

Controller/reports_controller.rb:

def index 
    @reports = Report.all 
    end 

specs/controllers/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 

Der letzte Test funktioniert nicht, aber es sollte funktionieren. Was ist daran falsch?

Antwort

0

Ihre Var unterscheidet sich vom Controller. Verwenden Sie Berichte anstelle von Bericht wie folgt:

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

Es sollte funktionieren.

+0

Ja, das hat funktioniert. Danke – Thatsthati

2

Index-Test ist leer..Sie müssen etwas durchsetzen, um zu bestehen.

können Sie hinzufügen .. assert_response :success in Index-Funktion.

+0

Die ersten zwei Tests sind vorüber. Nur der letzte ist es nicht. – Thatsthati

Verwandte Themen