Ruby on rails 在rspec中使用Rack::Test::UploadedFile时,没有将哈希隐式转换为字符串时出错

Ruby on rails 在rspec中使用Rack::Test::UploadedFile时,没有将哈希隐式转换为字符串时出错,ruby-on-rails,rspec,ruby-on-rails-5,Ruby On Rails,Rspec,Ruby On Rails 5,我正在从Rails 4和Ruby 2.1.10升级到Rails 5.0.6和Ruby 2.3.3 由于rails 5中不推荐使用ActionDispatch::Http::UploadedFile,因此我使用了新的方法: it "should create candidate" do file = Rack::Test::UploadedFile.new({filename: 'example.csv', type: 'text/csv', tempfile: File.new("#{Rai

我正在从Rails 4和Ruby 2.1.10升级到Rails 5.0.6和Ruby 2.3.3

由于rails 5中不推荐使用
ActionDispatch::Http::UploadedFile
,因此我使用了新的方法:

it "should create candidate" do
  file = Rack::Test::UploadedFile.new({filename: 'example.csv', type: 'text/csv', tempfile: File.new("#{Rails.root}/spec/files/example.csv")})
  Candidate.import_csv(file)
  expect(Candidate.find_by(name: "Stack Overflow").email).to eq "test@stackoverflow.com"
end  
我得到这个错误:

TypeError: no implicit conversion of Hash into String
问题是由随机执行测试引起的吗?

多亏了Marek()


文档中说,
Rack::Test::UploadedFile.new
将字符串作为参数,但您传递的哈希值与错误消息相对应。已经看到了这一点,但在创建临时文件时面临问题
file = Rack::Test::UploadedFile.new( Rails.root + 'spec/files/example.csv', 'example.csv' )