Hi,

I'm trying to mock an UploadedFile object and pass it to a controller action. 
Unfortunately, the mocked object gets stringified in the params hash, so I'm 
not able to use the mock object in a test.

Is there any way to avoid this stringification for UploadedFile objects?

This has been discussed already on github: 
https://github.com/rails/rails/pull/1203

As described, the params are stringified, but it should exclude 
Rack::Test::UploadedFile: 
https://github.com/rails/rails/pull/1203#issuecomment-1217081

Here is a small example:

let(:file) { mock('UploadedFile') }

it "tests something" do
  file.stub(:content_type).and_return 'text/plain'   # this won't work
  post :upload, { file: file }                                          # 
params in controller will be "file" => "#[RSpec::Mock ... ]"
end

I get a NoMethodError: undefined method `content_type' for 
"#[RSpec::Mocks::Mock:0x3fe4723a81bc @name=\"file\"]":String

So, how can I test this?

Thanks,
David

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to