[rspec-users] Mock UploadedFile object in controller params
David Piegza
david.piegza at web.de
Wed Jun 20 10:18:28 UTC 2012
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20120620/571ae269/attachment.html>
More information about the rspec-users
mailing list