如何在rspec中生成用于测试的文件以及给定大小和测试文件上载?我想生成文件。
我目前在fixtures / files中有文件,并使用fixture_file_upload作为测试文件。我想消除对该样本文件的需求。
答案 0 :(得分:3)
您可以使用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
的好文章正如文章所述,这需要改变您的测试理念。您只需关注必要的模型,而不是测试文件上传本身(您正在使用的宝石已经在测试)。
找到练习实际上传的替代方法答案 1 :(得分:0)
如果有人想将上传的文件存根到测试模型逻辑,那么这就是解决方案:
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