【发布时间】:2012-02-19 03:37:55
【问题描述】:
下面是我上传文件的测试代码。
describe "file process" do
before(:each) do
# debugger
@file = fixture_file_upload('test.csv', 'text/csv')
end
it "should be able to upload file" do
post :upload_csv, :upload => @file
response.should be_success
end
end
但是,当我运行 rspec spec 时,它产生了以下错误
Failure/Error: @file = fixture_file_upload('test.csv', 'text/csv')
RuntimeError:
test.csv file does not exist
# ./spec/controllers/quotation_controller_spec.rb:29:in `block (3 levels) in <top (required)>'
我用谷歌搜索了很多地方,但我仍然无法找出背后的原因。有什么想法吗?
【问题讨论】:
-
从 SO http://stackoverflow.com/questions/3966263/attachment-fu-testing-in-rails-3 找到一个解决方案。显然,我必须用这一行替换fixture_file_upload
@file = Rack::Test::UploadedFile.new(Rails.root.join('spec/fixtures/test.csv'), 'text/csv') -
fixture_file_upload 不适用于 Rails 3.1?
-
升级到 3.2 后我开始看到这个
-
它似乎在 rails 3.2 中损坏了,请在 github 上查看此问题:github.com/rspec/rspec-rails/issues/252
标签: ruby-on-rails rspec