Bu soruyu aradım ve soruyu veya yanıtını Stack Overflow'da bulamadım, ancak başka bir yerde buldum, bu yüzden SO'da kullanılabilir olmasını istiyorum.
Raylar çerçevesi, belirtilen dosya için armatürler dizininizde arama yapacak ve işlevsel testte kontrolör için bir test dosyası olarak kullanıma sunacak bir işleve fixture_file_upload
( Rails 2 Rails 3 , Rails 5 ) sahiptir. Kullanmak için:
1) Teste yüklenecek dosyanızı test etmek için fikstür / dosyalar alt dizinine koyun.
2) Birim testinizde, fixture_file_upload ('yol', 'mime-türü') çağırarak test dosyanızı alabilirsiniz.
Örneğin:
bulk_json = fixture_file_upload('files/bulk_bookmark.json','application/json')
3) yükleme için parametre olarak fixture_file_upload tarafından döndürülen nesneyi ileterek, istediğiniz denetleyici eylemini vurmak için post yöntemini çağırın.
Örneğin:
post :bookmark, :bulkfile => bulk_json
Veya Raylar 5'te: post :bookmark, params: {bulkfile: bulk_json}
Bu, fikstür dizininizdeki dosyanın bir Tempfile kopyasını kullanarak simüle edilmiş post sürecinden geçecek ve daha sonra, gönderinin sonuçlarını incelemeye başlayabilmeniz için birim testinize dönecektir.