2010-09-27 8 views
5

tengo una especificación para probar un controlador como por debajo dede sesión de usuario mientras se prueba con rspec y authlogic

require 'spec_helper' 

describe ProductsController do 
setup :activate_authlogic 

describe "user not logged in" do 

it "should not GET index" do 
get :index 
response.should redirect_to(login_path) 
end 

end 

describe "user logged in" do 

before(:each) do 
UserSession.create :username => "rohit", :password => "test123" 
end 

it "should GET index" do 
get :index 
response.should redirect_to(products_path) 
end 

end 

end 

También he utilizado esta línea en spec_helper.rb

require "authlogic/testcase" 

La prueba de "user no conectado pases", sino por 'usuario conectado' falla con

'ProductsController user is logged in should GET index' FAILED 
expected redirect to "/products", got no redirect 

Respuesta

-1

parece normal, porque de hacer salir los productos '/ 'url con un usuario registrado. Luego Él ve esta página. Él no es redirigido a la página que ve.

Cada prueba es independiente. Ningún estado se guarda en la prueba anterior.

+0

por qué recibo una redirección no en el ejemplo de "usuario conectado", al menos debería ser redireccionado a alguna parte. Incluso intenté usar redirect_to (login_path) en lugar de redirect_to (products_path), pero recibía el mismo error. ¿Porqué es eso? – Rohit

+0

porque solo pide la página '/ productos' si no hay redirección_ a otra cosa en este controlador es normal. Pon tu controlador de producción si quieres más información – shingara

+0

, básicamente, ¿qué estás diciendo? Debería eliminar la línea redirect_to de la especificación – Rohit

Cuestiones relacionadas