使用rspec进行文件上传测试

PiK*_*KaY 5 specifications rspec ruby-on-rails rspec-rails

如何生成用于测试的文件,并在 rspec 中上传给定大小和测试文件?我想生成文件。

我目前在 fixtures/files 中有文件,并使用 fixture_file_upload 作为测试文件。我想消除对该示例文件的需求。

Kos*_*sis 3

您可以使用 factory_girlfabrication来模拟上传的文件。

示例配置factory_girl如下:

factory :attachment do
  supporting_documentation_file_name { 'test.pdf' }
  supporting_documentation_content_type { 'application/pdf' }
  supporting_documentation_file_size { 1024 }
end
Run Code Online (Sandbox Code Playgroud)

看看这篇好文章,了解为什么以及如何使用工厂女孩来做到这一点

正如本文所述,这需要改变您的测试理念。您只需关注必要的模型,而不是测试文件上传本身(您正在使用的 gem 已经为您进行了测试)。

可以在此处找到练习实际上传的替代方法:在 Rails 3.1 控制器测试中模拟文件上传