2010-09-27 21 views
5

Tôi có một spec cho thử nghiệm một bộ điều khiển như sautài khoản đăng nhập trong khi thử nghiệm với rspec và 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 

Tôi cũng đã sử dụng dòng này trong spec_helper.rb

require "authlogic/testcase" 

Bài kiểm tra cho "người dùng không đăng nhập được "nhưng đối với" người dùng đã đăng nhập "không thành công với

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

Trả lời

-1

Có vẻ như bình thường, bởi vì bạn tìm nạp '/ sản phẩm 'url với người dùng đã đăng nhập. Rồi Ngài thấy trang này. Anh ta không chuyển hướng đến trang anh ta thấy.

Mỗi bài kiểm tra là độc lập. Không có trạng thái nào được lưu trong bài kiểm tra trước đó.

+0

lý do tại sao tôi không nhận được chuyển hướng trong ví dụ "người dùng đăng nhập", ít nhất nó sẽ được chuyển hướng đến một nơi nào đó. Tôi thậm chí đã cố gắng sử dụng redirect_to (login_path) thay vì redirect_to (products_path) vẫn còn tôi đã nhận được lỗi tương tự. Tại sao vậy? – Rohit

+0

bởi vì bạn chỉ hỏi trang '/ sản phẩm' nếu không có chuyển hướng_để một cái gì đó khác trong bộ điều khiển này thì điều đó là bình thường. Đặt bộ điều khiển sản xuất của bạn nếu bạn muốn biết thêm thông tin – shingara

+0

vì vậy, về cơ bản bạn đang nói gì. Tôi có nên loại bỏ các redirect_to dòng từ spec – Rohit

Các vấn đề liên quan