Szukałem tego pytania i nie mogłem go znaleźć ani odpowiedzi na Stack Overflow, ale znalazłem je gdzie indziej, więc proszę o udostępnienie go na SO.
Framework rails posiada funkcję fixture_file_upload
( Rails 2 Rails 3 , Rails 5 ), która przeszuka katalog fixtures w poszukiwaniu określonego pliku i udostępni go jako plik testowy dla kontrolera podczas testów funkcjonalnych. Aby z niego skorzystać:
1) Umieść plik do przesłania do testu w podkatalogu fixtures / files do testów.
2) W swoim teście jednostkowym możesz pobrać plik testowy, wywołując fixture_file_upload („path”, „mime-type”).
na przykład:
bulk_json = fixture_file_upload('files/bulk_bookmark.json','application/json')
3) wywołaj metodę post, aby wykonać żądaną akcję kontrolera, przekazując obiekt zwrócony przez fixture_file_upload jako parametr do załadowania.
na przykład:
post :bookmark, :bulkfile => bulk_json
Lub w Rails 5: post :bookmark, params: {bulkfile: bulk_json}
Spowoduje to przeprowadzenie symulowanego procesu końcowego przy użyciu kopii pliku Tempfile pliku w katalogu urządzeń, a następnie powrót do testu jednostkowego, aby można było rozpocząć badanie wyników wiadomości.