6

私はこのようないくつかの統合テストを行います:

 def user.excel_import
          fixture_excel = fixture_file_upload('goodsins.xls', 'text/xls')
          post excel_import_goods_ins_goods_ins_path, :dump=> {:excel_file=>fixture_excel}, :html => { :multipart => "true" }
          assert_response :redirect
          assert_redirected_to goods_ins_path
       end

しかし、テストを実行すると、goodsins.xls ファイルが存在しないと言われます。参考:フィクスチャという名前のフォルダにファイルを入れました。

何か案が?どうもありがとう

4

1 に答える 1

9

ここのメモ: http://apidock.com/rails/ActionController/TestProcess/fixture_file_uploadは、パスまたはファイル名の前にスラッシュを含める必要があることを示しています。

fixture_file_upload('/goodsins.xls', 'text/xls')それが役立つかどうか試してみてください。

Fixture_file_upload ソース:

# File actionpack/lib/action_controller/test_process.rb, line 523
def fixture_file_upload(path, mime_type = nil, binary = false)
  if ActionController::TestCase.respond_to?(:fixture_path)
    fixture_path = ActionController::TestCase.send(:fixture_path)
  end

  ActionController::TestUploadedFile.new("#{fixture_path}#{path}",
    mime_type, binary)
end

質問の所有者からの更新:

解決:

include ActionDispatch::TestProcessに追加test_helper.rb

于 2012-06-11T13:06:54.650 に答える