7

Sau đây tạo ra một lỗi: "không xác định địa phương biến hoặc phương pháp 'params"Làm thế nào để bạn kiểm tra hàm băm params trong bài kiểm tra Rails?

assert_equal params[:recipient_id], users(:one).id

Làm thế nào để bạn kiểm tra băm params?

Ngoài ra, làm thế nào để bạn kiểm tra assert_redirect khi có thông số hiện tại? Các tham số được nối vào URL, vì vậy hãy kiểm tra model_path hoặc lỗi tương tự.

Làm việc với lớp thử nghiệm được xây dựng trong Rails 3.

+0

@B Bảy: Tại sao bạn muốn kiểm tra những gì có trong hàm băm? Tôi biết, đó là một câu hỏi khó chịu, nhưng có vẻ lạ với tôi rằng người ta sẽ muốn thử nghiệm một điều như vậy. Điều quan trọng hơn là bộ điều khiển đang lấy đối tượng chính xác. – Samo

+0

@Samo Tôi không chắc liệu đây có phải là lý do hợp lệ hay không, nhưng tôi có một hành động điều khiển kết hợp một trường thời gian và một trường ngày (tôi có chúng như các trường riêng biệt), và trong trường hợp có lỗi, cần đảm bảo rằng các trường đã được unmerged đúng cách để chúng xuất hiện cho người dùng khi chúng được gửi ban đầu. Bạn nghĩ gì về điều này? –

Trả lời

7

http://guides.rubyonrails.org/testing.html#functional-tests-for-your-controllers cung cấp một số thông tin này.

Trong trường hợp này, thông số được gắn vào đối tượng @request hoặc @response (tùy thuộc vào phương thức HTTP bạn đang thử nghiệm), vì vậy bạn có thể tham chiếu đến phương thức này là @request.params[:recipient_id].

Để chuyển hướng: assert_redirected_to post_path(assigns(:post)) sẽ xác nhận rằng bạn được chuyển hướng đến đường dẫn thích hợp cho một mẫu nhất định. Phương thức gán sẽ có các biến cá thể bạn đang đặt bên trong bộ điều khiển để chuyển đến chế độ xem

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