Đã tìm kiếm câu hỏi này và không thể tìm thấy nó hoặc câu trả lời của nó trên Stack Overflow, nhưng lại tìm thấy nó ở nơi khác, vì vậy tôi yêu cầu cung cấp nó trên SO.
Khung công tác rails có một chức năng fixture_file_upload
( Rails 2 Rails 3 , Rails 5 ), chức năng này sẽ tìm kiếm thư mục fixtures của bạn cho tệp được chỉ định và sẽ cung cấp nó dưới dạng tệp thử nghiệm cho bộ điều khiển trong thử nghiệm chức năng. Để dùng nó:
1) Đặt tệp của bạn sẽ được tải lên trong thử nghiệm trong thư mục con đồ đạc / tệp của bạn để thử nghiệm.
2) Trong bài kiểm tra đơn vị của bạn, bạn có thể lấy tệp thử nghiệm của mình bằng cách gọi fixture_file_upload ('path', 'mime-type').
ví dụ:
bulk_json = fixture_file_upload('files/bulk_bookmark.json','application/json')
3) gọi phương thức post để thực hiện hành động của bộ điều khiển mà bạn muốn, chuyển đối tượng được trả về bởi fixture_file_upload làm tham số tải lên.
ví dụ:
post :bookmark, :bulkfile => bulk_json
Hoặc trong Rails 5: post :bookmark, params: {bulkfile: bulk_json}
Điều này sẽ chạy qua quy trình bài đăng được mô phỏng bằng cách sử dụng bản sao Tempfile của tệp trong thư mục đồ đạc của bạn và sau đó quay lại kiểm tra đơn vị của bạn để bạn có thể bắt đầu kiểm tra kết quả của bài đăng.