2012-06-06 5 views
7

ich diesen Code mit rspecRspec Rendering Text

if @temp_user.save 
    sign_in(:user, @temp_user) 
    render text: "OK" 
else 
    render text: render_to_string(:partial => "errors") 
end 

und ich versuche zu überprüfen haben die machen "OK"

das ist meine eigentliche spec:

it "render text OK" do 
    post :create, {:agent => valid_attributes} 
    # response.should have_content("OK") 
    response.should render_template(:text => "OK") 
    end 

aber dieses spec respond 0 Fehler immer, auch wenn ich "OKI" an Ort und Stelle "OK" setze

hat jemand einen Vorschlag dafür?

+0

Kann sein 'beschreiben "machen Text OK" tun' und nicht mit 'it' rendern Text OK "tun"? – Alexander

Antwort

3

Wenn Sie Schienen 3 oder höher

expect(response.body).to eq "OK" 

arbeiten

2
describe "render text OK" do 
    post :create, {:agent => valid_attributes} 
    # response.should have_content("OK" 
    response.should render_template(:text => "OK") 
end 
+1

expect (response) .to render_template (: text => '') – drhenner

+0

@ drhenners Vorschlagsergebnisse zu 'Unbekannter Schlüssel:: text. Gültige Schlüssel sind:: layout,: partially,: localhosts,: count,: file' für mich. –

+0

Mein einziger Punkt war, 'expect' zu verwenden ... Welche Version von Rails verwendest du? – drhenner

12
response.body.should == "OK" 

Werke für mich

+0

In Rspec 3 und darüber sollte es sein als: 'expect (body) .to eq" OK "' – abonec