2012-06-27 6 views

Antwort

12

Also, was ich fand, war, dass ich so etwas wie dies in rspec

def other_error 
    raise "ouch!" 
end 

it "renders 500 on Runtime error" do 
    get :other_error 
    response.should render_template("errors/500") 
    response.status.should == 500 
end 
+0

Um zu klären, sind Vorstellen Sie eine 'other_error' Methode auf einige Controller, nicht als Hilfsmethode in Ihrem rspec Test, nicht wahr? Ich würde lieben, dass letzteres funktioniert, aber ich denke, es ist ein Traum. –

6

hier tun konnte, was ich tun, Sie unter der Annahme verwenden , und : Zuerst müssen Sie ein finden Controller-Aktion, die eine Methode aufruft. Sie könnten beispielsweise eine UserController mit einer show Aktion haben, die User.find aufruft. In diesem Fall Sie so etwas wie dies tun können:

it "should render the 500 error page when an error happens" do 
    # simulate an error in the user page 
    User.should_receive(:find).and_raise("some fancy error") 
    visit '/user/1' 

    # verify status code 
    page.status_code.should eql(500) 

    # verify layout 
    page.title.should eql('Your site title') 
    page.should have_css('navigation') 
    page.should have_css('.errors') 
end 
Verwandte Themen