Rails4 アップロードしたファイルのテスト
前回、csvファイルをアップロードして読み込む方法を調べた。
Rails4 csvファイルをアップロードして読み込む - ayaketanのプログラミング勉強日記
そのテストをおこなうため、アップロードしたファイルのテスト方法を調べた。
fixture_file_uploadを使うと、\spec\fixturesに入っているファイルのアップロードがおこなえる。
テスト用にアップロードするファイルを準備
\spec\fixtures\filesにテスト用ファイルtest_user.csvファイルを入れる。
fixture_file_uploadを使用可能にする
\spec\models\user_spec.rbの先頭でinclude
include ActionDispatch::TestProcess
ファイルをアップロードして、テストをおこなう
\spec\models\user_spec.rbにテストを書く。
it "CSVファイルを読み込んで、ハッシュの配列に変換する" do csv_file = fixture_file_upload('files/test_user.csv', 'text/csv') csv_data = User.load_csv(csv_file) # ここにテストを書く end
参考:
【ruby】Railsでファイルアップロードをテストする - tanihiro.log
test a file upload using rspec - rails - Stack Overflow