2012-06-06 9 views
7

tengo este CódigoRspec representación de texto

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

y trato de verificar con rspec el render "OK"

esto es mi especificación real:

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

pero esta especificación responden 0 fallas siempre, incluso cuando puse "OKI" en su lugar "OK"

alguien tiene una sugerencia para eso?

+0

puede ser 'describir "representar el texto OK" hacer' y no "it" renderiza el texto OK "do"? – Alexander

Respuesta

3

Si está utilizando los carriles 3 o por encima de

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

funcionarán

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

espera (respuesta) .to render_template (: text => '') – drhenner

+0

@ sugerencias de drhenner a 'Clave desconocida:: texto. Las claves válidas son:: layout,: partial,: locals,: count,: file' for me. –

+0

Mi único punto fue usar 'esperar' ... ¿Qué versión de Rails estás usando? – drhenner

12
response.body.should == "OK" 

funciona para mí

+0

En rspec 3 y superior debe ser como: 'expect (response.body) .to eq" OK "' – abonec

Cuestiones relacionadas