Ruby on rails 在Rails中测试文件是否成功上载

Ruby on rails 在Rails中测试文件是否成功上载,ruby-on-rails,file-upload,functional-testing,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')

我正在运行Rails 3.2.13

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

我想写一个功能测试,测试正确的文件是否被保存,错误的文件是否没有被保存

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

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

运行测试时,此文件保存在哪里?

/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

另外,它也适用于TestUnit

这不是位置问题。测试时,文件似乎存储(或模拟存储)在“资产”位置。我忘了在加入名称时添加'app',比如File.join('app','assets'…)