2010-09-27 14 views
5

ho una spec per testare un controllore come di seguitoLogin utente durante il test con RSpec e 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 

ho usato anche questa linea in spec_helper.rb

require "authlogic/testcase" 

Il test per "utente non sei loggato nel pass", ma per 'utente connesso in' viene a mancare con

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

risposta

-1

sembra normale, perché Tu recuperare i '/ prodotti 'url con un utente registrato. Quindi vede questa pagina. Non è reindirizzato alla pagina che vede.

Ogni test è indipendente. Nessuno stato è stato salvato nel test precedente.

+0

perché non ricevo un reindirizzamento nell'esempio "utente connesso", almeno dovrebbe essere reindirizzato da qualche parte. Ho anche provato a usare redirect_to (login_path) invece di redirect_to (percorso_prodotti), ma stavo ricevendo lo stesso errore. Perché? – Rohit

+0

perché chiedi solo la pagina '/ prodotti' se non ci sono redirect_per qualcos'altro in questo controller è normale. Metti il ​​controller di produzione se vuoi maggiori informazioni – shingara

+0

quindi, in pratica cosa stai dicendo. Devo rimuovere il redirect_to line dalla specifica – Rohit

Problemi correlati