Tôi có một thử nghiệm rspec đăng lên một hành động. Trong hành động, biến phiên được đặt chắc chắn, tuy nhiên trong kiểm tra bộ điều khiển của tôi, băm phiên bị trống. Làm thế nào để kiểm tra trong một thử nghiệm Rspec để xem nếu bộ điều khiển thiết lập biến phiên với giá trị đúng?Kiểm tra Rspec nếu một biến phiên được đặt trong một hành động điều khiển
Trả lời
Bạn có thể truy cập phiên trực tiếp trong rspec như thế này: session[:key]
. Chỉ cần so sánh điều đó với giá trị bạn muốn.
xin lỗi tôi đoán tôi nên nói những gì đã thử. tôi đã thử điều đó, nhưng phiên họp trống. spec có một phiên trống nhưng sử dụng bộ điều khiển theo cách thông thường, nó hoạt động – chris
@ Chris, tôi đã làm điều đó nhiều lần vì vậy tôi biết nó hoạt động. Vui lòng dán mã nếu cần. –
Bạn có sử dụng bất kỳ before_filter
nào trong bộ điều khiển của mình không? Đây có thể là trường hợp, nếu before_filter
thay đổi luồng và mã của bạn bằng cách gán biến cho phiên đó thậm chí không được đánh giá.
Ví dụ bạn có thể có dòng này trong điều khiển của bạn:
# ...
before_filter :authenticate_user!
# ...
Điều đó có nghĩa nếu bạn chưa đăng nhập, bạn sẽ không bao giờ nhập bất kỳ phương pháp trong điều khiển này. Vì vậy biến số session
sẽ trống.
Xem this. Vấn đề chính là biến số session
không thể truy cập được từ mã thử nghiệm. Để giải quyết vấn đề này, hãy thêm các đường kẻ thù tại số spec/spec_helper.rb
:
def session
last_request.env['rack.session']
end
điều này có lẽ là câu trả lời cho những gì đã thực sự sai tại thời điểm tôi đăng này. – chris
- 1. Kiểm tra biến lớp RSpec
- 2. Kiểm tra RSpec để tạo hành động của bộ điều khiển cho tài nguyên lồng nhau
- 3. Kiểm tra nếu một biến được xác định trong javascript?
- 4. Kiểm tra bộ điều khiển RSpec - trả lời trống.bạn
- 5. Kiểm tra bộ điều khiển Rspec với Javascript
- 6. Đặt một phương thức điều khiển với Sinatra và rspec
- 7. Làm cách nào để kiểm tra việc gán một biến mẫu trong hành động mới của trình điều khiển của tôi với rspec?
- 8. Làm thế nào để kiểm tra biến cá thể được khởi tạo trong bộ điều khiển với RSpec
- 9. Bộ điều khiển kiểm tra bằng đá quý với RSpec
- 10. kiểm tra một giá trị biến sử dụng một nhà điều hành HOẶC
- 11. Kiểm tra send_file RSpec
- 12. Kiểm tra bộ điều khiển với RSpec, Devise, Factory Girl
- 13. Kiểm tra nếu một nút radio được kiểm tra jquery
- 14. rail3/rspec/devise: kiểm tra bộ điều khiển rspec không thành công trừ khi tôi thêm một dummy = subject.current_user.inspect
- 15. Kiểm tra xem phiên có được đặt hay không và nếu không tạo phiên?
- 16. Cách kiểm tra đặt trong rspec
- 17. Cách thích hợp để kiểm tra hành động của bộ điều khiển 'tạo' là gì?
- 18. Kiểm tra nếu một biến tồn tại trong javascript
- 19. Rails kiểm tra trình điều khiển rspec và kiểm tra tích hợp
- 20. Cách đặt biến phiên trong kiểm tra tích hợp Rails
- 21. Kiểm tra Nếu Cập nhật phiên bản hoạt động tốt
- 22. Làm thế nào để kiểm tra qua rspec rằng các biến session cập nhật trong điều khiển
- 23. Rspec, kiểm tra bộ điều khiển cập nhật không hoạt động?
- 24. Kiểm tra bộ điều khiển RSpec - "gán" hoạt động bất ngờ
- 25. AS3: Kiểm tra nếu một biến là loại Object
- 26. Spring MVC: Điều gì sẽ xảy ra nếu tôi bắt đầu một chuỗi trong một hành động điều khiển?
- 27. Phiên điều khiển truy cập Rspec 2.7 trong thông số kỹ thuật trước khi yêu cầu
- 28. Làm cách nào để viết kiểm tra bộ điều khiển Rspec để đảm bảo rằng một e-mail được gửi?
- 29. Rspec, Devise, Factory girl - cách đăng nhập người dùng Nhà máy thông qua kiểm tra bộ điều khiển Rspec?
- 30. Kiểm tra xem chỉ một biến trong danh sách các biến được đặt là
Vậy nguyên nhân thực sự của việc này là gì? (kể từ khi bạn đánh dấu một câu trả lời nhưng không thực sự giải thích) – lulalala
Câu trả lời là đúng cho câu hỏi tôi đã hỏi, nhưng vấn đề của tôi đã không liên quan đến câu hỏi của tôi – chris