如何生成一個文件用於在rspec中以給定大小和測試文件上傳進行測試?我想要生成該文件。使用rspec進行文件上傳測試
我目前擁有fixtures/files中的文件,並使用fixture_file_upload作爲測試文件。我想消除對該示例文件的需求。
如何生成一個文件用於在rspec中以給定大小和測試文件上傳進行測試?我想要生成該文件。使用rspec進行文件上傳測試
我目前擁有fixtures/files中的文件,並使用fixture_file_upload作爲測試文件。我想消除對該示例文件的需求。
您可以使用factory_girl或fabrication來模擬上傳的文件。
爲factory_girl
的配置實例會是什麼樣子:
factory :attachment do
supporting_documentation_file_name { 'test.pdf' }
supporting_documentation_content_type { 'application/pdf' }
supporting_documentation_file_size { 1024 }
end
把這個好文章,一看就爲什麼和如何do that using factory girl
這一點,因爲文章描述,需要在您的測試的轉變哲學。而不是測試文件上傳本身(您正在使用的寶石已經在爲您測試),您只需關注必要的模型。
的替代行使實際的上傳可以在這裏Mocking file uploads in Rails 3.1 controller tests
如果有人想存根上傳文件到測試模型的邏輯可以發現,這裏是解決方案:此
file = Rack::Test::UploadedFile.new(File.join(Rails.root, 'app', 'assets', 'images', 'test-file.jpg'), 'image/jpg')
allow_any_instance_of(Model).to receive(:photo_obj).and_return file
所以我們不需要任何實際的文件? – PiKaY
@PiKaY fixture_file_upload確實需要實際的文件,所提供的文章建議的替代方法不需要。查看我最新的答案,瞭解您實際測試的內容 –