rails_fu在rails 3中进行测试
我正在尝试使用attachment_fu为工作文件上传function编写规范。 但是,作者为测试提供的示例代码要求我需要action_controller/test_process
以便我可以访问ActionController::UploadedStringIO
类。 我之前在rails 2.x中使用过这个,但对于rails 3,它无法找到test_process
文件。
如何在rails 3中测试文件上载function?
我能够在Rails3和rspec上使用fixture_file_upload。
我刚刚在spec_helper.rb中添加了include ActionDispatch::TestProcess
,然后将以下内容作为filedata传递:
fixture_file_upload(Rails.root.join("spec/support/test.png"), 'image/png')
编辑:我升级的东西改变了这个行为总是包括fixtures路径,所以我切换到这个而不是fixture_file_upload:
Rack::Test::UploadedFile.new(Rails.root.join("spec/support/test.png"), 'image/png')
我正在研究rails 3中的文件上传测试,虽然我不知道我的答案会有多大帮助。 你有可能改变测试吗? 就个人而言,我正在使用Cucumber / Capybara方法。 Capybara的DSL定义
attach_file('Image', '/path/to/image.jpg')
就个人而言,这似乎是一种比与StringIO对象交互更好的测试方法…随意反驳。
找到Rails 3有点棘手
您仍然可以使用fixture_file_upload
函数,但您必须添加:
include ActionDispatch::TestProcess
对你的测试用例。
这对Rspec来说根本不起作用。 我只需要抓取文件本身并直接发布文件。
- Rails:send_file永远不会呈现页面或DoubleRender错误
- 在同一个字段上使用attr_accessor和attr_accessible
- 安装eventmachine(1.0.3)时发生错误,Bundler无法继续
- Ruby on Rails:NilClass的未定义方法`model_name’:Class
- Rails 4 / Devise / MongoDB:使用自定义属性和强参数的“未允许的参数”
- 如何使用RSpec测试ajax POST请求?
- ruby:如何有效地迭代哈希中的元素
- Rails 4资产管道不会使用asset_path引用其他资产来覆盖资产
- Rails:上传文件或存储url