测试文件是否在Rails中成功上传

时间:2013-06-19 09:35:55

标签: ruby-on-rails file-upload functional-testing

我正在运行Rails 3.2.13。

在我的一个控制器中,应用程序处理用户发送文件的表单。 应用程序分析文件并保存或不保存,具体取决于分析。

我想编写一个功能测试,测试是否保存了正确的文件,并且没有保存错误的文件。

我正在从test / fixtures / files加载文件,如下所示:

resource_file = Rack::Test::UploadedFile.new(Rails.root.
    join('test', 'fixtures', 'files', 'f1.jpg'))

运行测试时,此文件将保存在何处?

1 个答案:

答案 0 :(得分:0)

/spec/support/fixture_file.rb

include ActionDispatch::TestProcess
def fixture_file(filename, extension)
  fixture_file_upload(Rails.root.join('spec', 'fixtures', filename), extension)
end

/spec/factories/offers.rb

FactoryGirl.define do 
  factory :offer do
    large_picture { fixture_file("ostrov.jpg", "image/jpeg") }
  end
end

P.S它也适用于TestUnit