1

我正在使用 RSpec (Rails 3.2) 来测试我的控制器。我有一个控制器,其中还包含一个文件上传(使用 CarrierWave),但我不断收到错误消息:

失败/错误:“图像”=>fixture_file_upload(Rails.root.join('spec', 'fixtures', 'files', 'image.png'), 'image/png') RuntimeError: .../spec/固定装置/文件/image.png 文件不存在

在我的控制器中,我定义了这样的图像上传:

  def valid_attributes
{ "title" => "My own title",
  "description" => "Something cool",
  "image" => fixture_file_upload(Rails.root.join('spec', 'fixtures', 'files', 'image.png'), 'image/png')
}

结尾

我当然检查过该文件是否存在,但可能还有其他我忽略的东西吗?

4

1 回答 1

4

似乎您必须使用Rack::Test::UploadedFile.new而不是fixture_file_upload在 Rails 3.2 中:

def valid_attributes
  { "title" => "My own title",
    "description" => "Something cool",
    "image" => Rack::Test::UploadedFile.new(Rails.root.join('spec', 'fixtures', 'files', 'image.png'), 'image/png')
  }
end

请参阅此 SO 问题/答案:fixture_file_upload has {file} 不存在错误

于 2012-12-09T12:56:57.327 回答