改修するシステムのファイルアップロード部分にテストが無かったので書いてみた。
以下のような、フォーム。
エクセルをアップロードすると一覧が更新されるというようなもの。
<%= form_tag(:action: :create, multipart: true) do %>
ファイル名: <%= file_field(:upload, 'file') %>
<%= submit_tag('アップロード') %><br>
<% end %>
以下のようにfeature spec
を書いてみた。
scenario 'アップロードで更新できる' do
file_path = Rails.root.join('spec', 'fixtures', 'hoge.xls')
attach_file('upload_file', file_path)
click_on 'アップロード'
expect(page).to have_content 'ほげほげ'
end
はー、手動テストとかメチャメチャ辛い部分なので自動でやってくれると助かるわー。
controller
でテストするならfixture_file_upload
とかを使うとよいかも。