Tôi có tài nguyên trong đó hành động mới yêu cầu người dùng đăng nhập để xem. Nếu người dùng cố tạo tài nguyên mới mà không đăng nhập, họ sẽ được chuyển hướng (302'd) đến trang đăng nhập. thử nghiệm chức năng của tôi trông như thế này:Phát hiện lỗi cảnh báo lỗi cho authenticate_user trong kiểm tra Rails chức năng
test "should not get new unless logged in" do
get :new
assert_response :redirect
end
Các stacktrace trông giống như sau:
ArgumentError: uncaught throw :warden
/.../gems/warden-1.1.1/lib/warden/proxy.rb:114:in `throw'
/.../gems/ruby-1.9.2-p318/gems/warden-1.1.1/lib/warden/proxy.rb:114:in `authenticate!'
/.../gems/ruby-1.9.2-p318/gems/devise-2.0.4/lib/devise/controllers/helpers.rb:48:in `authenticate_user!'
Tôi có một before_filter để authenticate_user trước khi hành động mới.
Tôi hiểu tại sao authenticate_user! là thất bại nhưng tôi không thể hiểu tại sao nó ném một lỗi. Không nên nó chỉ hoạt động như trong ví dụ webapp. chuyển hướng người dùng đến trang đăng nhập?
Cảm ơn.
Bạn đã bao giờ tìm cách kiểm tra trường hợp người dùng chưa đăng nhập chưa? Tôi đang gặp vấn đề tương tự. –
Tôi không chắc chắn làm thế nào tôi cuối cùng đã nhận được làm việc này nhưng nó có thể xuống để thêm 'bao gồm Devise :: TestHelpers' cho lớp thử nghiệm.Cảm thấy tự do để thêm một pastebin với mã của bạn và tôi sẽ cố gắng để có một cái nhìn. – Ger
trong trường hợp của tôi điều này hóa ra là một 'js: true' trong khai báo tính năng (mà tôi không cần, và bằng cách nào đó gây ra lỗi này) – xxjjnn