Thanks for the hint. But I would like to mock the UploadedFile object (I don't
want to load a file..).
My current workaround is to stub the params hash:
controller.stub(:params).and_return { file: file }
Would be nice if I could just pass in the mocked UploadedFile object...
On 21.06.2012, at 13:14, Justin Ko wrote:
>
> On Jun 20, 2012, at 4:18 AM, David Piegza wrote:
>
>> 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
>> [email protected]
>> http://rubyforge.org/mailman/listinfo/rspec-users
>
> Rails has a built-in helper method for this:
> http://api.rubyonrails.org/classes/ActionDispatch/TestProcess.html#method-i-fixture_file_upload
>
> _______________________________________________
> rspec-users mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users