Mencari pertanyaan ini dan tidak dapat menemukannya, atau jawabannya di Stack Overflow, tetapi menemukannya di tempat lain, jadi saya meminta untuk membuatnya tersedia di SO.
Kerangka kerja rel memiliki fungsi fixture_file_upload
( Rails 2 Rails 3 , Rails 5 ), yang akan mencari direktori perlengkapan Anda untuk file yang ditentukan dan akan membuatnya tersedia sebagai file uji untuk pengontrol dalam pengujian fungsional. Untuk menggunakannya:
1) Letakkan file Anda untuk diunggah dalam pengujian di subdirektori perlengkapan / file Anda untuk pengujian.
2) Dalam pengujian unit Anda, Anda bisa mendapatkan file pengujian dengan memanggil fixture_file_upload ('path', 'mime-type').
misalnya:
bulk_json = fixture_file_upload('files/bulk_bookmark.json','application/json')
3) panggil metode posting untuk menekan aksi pengontrol yang Anda inginkan, meneruskan objek yang dikembalikan oleh fixture_file_upload sebagai parameter untuk unggahan.
misalnya:
post :bookmark, :bulkfile => bulk_json
Atau di Rails 5: post :bookmark, params: {bulkfile: bulk_json}
Ini akan dijalankan melalui proses posting yang disimulasikan menggunakan salinan Tempfile dari file di direktori perlengkapan Anda dan kemudian kembali ke pengujian unit Anda sehingga Anda dapat mulai memeriksa hasil posting.