Tôi bắt đầu viết các bài kiểm tra chức năng cho ứng dụng đường ray của mình ngay hôm nay. Tôi sử dụng plugin xác thực RESTful. Tôi gặp một vài điều khó hiểu mà tôi hy vọng ai đó có thể làm rõ cho tôi.Thử nghiệm chức năng Ruby on Rails với plugin Xác thực RESTful
1) Tôi đã viết chức năng đăng nhập nhanh vì hầu hết các chức năng trong ứng dụng đường ray của tôi đều yêu cầu xác thực.
def login_as(user)
@request.session[:user_id] = user ? user.id : nil
end
Vấn đề tôi thấy với chức năng này, về cơ bản là giả mạo xác thực. Tôi có nên lo lắng về điều này? Có lẽ nó là okay để đi tuyến đường này miễn là tôi kiểm tra phương pháp xác thực thực sự ở đâu đó. Hoặc có lẽ đây là thực hành khủng khiếp.
2) Điều khó hiểu thứ hai là ở một số nơi trong các bài kiểm tra chức năng của tôi, tôi cần quá trình xác thực đầy đủ để xảy ra. Khi người dùng được kích hoạt, tôi có phương thức do_activate tạo một số đối tượng ban đầu cho người dùng. Nó tương tự như việc tạo ra một đối tượng sổ tay trống và đối tượng bút cho một ứng dụng sinh viên, nếu điều đó có ý nghĩa.
Vì vậy, để kiểm tra ứng dụng của tôi đúng cách, tôi cần người dùng nhấn trạng thái kích hoạt đó để các đối tượng đó được tạo. Tôi hiện đang sử dụng Factory Girl để tạo người dùng và sau đó gọi hàm login_as ở trên để xác thực giả mạo.
Tôi đoán một tùy chọn khác là bỏ qua chuỗi xác thực đầy đủ và chỉ cần tạo các đối tượng trống với Factory Girl. Tôi có thể kiểm tra xác thực thích hợp ở một nơi khác.
Bạn nghĩ sao? Nếu tôi nên đi qua các trình tự thích hợp, tại sao không phải là mã dưới đây gọi hàm do_activate?
user = Factory.create(:user)
user.active = 1
user.save
Cảm ơn bạn!
[Đây là câu hỏi tương tự mà tôi đã hỏi] (http://stackoverflow.com/questions/64827/rails-restful-authentication-rspec-how-to-test-new-models-that-require-authen) và một loạt các liên kết tôi đã kéo lại với nhau. – srboisvert