2012-06-06 11 views
7

ho questo codiceRspec testo di rendering

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

e cerco di verificare con RSpec il render "OK"

questo è il mio spec attuale:

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

ma questo spec rispondere 0 fallimenti sempre, anche quando inserisco "OKI" sul posto "OK"

qualcuno ha un suggerimento per questo?

+0

può essere 'descrivere "il rendering del testo OK" fare' e non "it" rende il testo OK "fai"? – Alexander

risposta

3

Se si utilizza rotaie 3 o superiore

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

funzioneranno

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

@ Il suggerimento di drhenner risulta in 'Chiave sconosciuta:: testo. Le chiavi valide sono:: layout,: partial,: locals,: count,: file' for me. –

+0

Il mio unico punto era usare 'expect' ... Che versione di Rails stai usando? – drhenner

12
response.body.should == "OK" 

funziona per me

+0

In rspec 3 e sopra dovrebbe essere come: 'expect (response.body) .to eq" OK "' – abonec

Problemi correlati