代码之家  ›  专栏  ›  技术社区  ›  Chirantan

钢轨3中的附件úfu试验

  •  11
  • Chirantan  · 技术社区  · 14 年前

    我正在尝试使用附件为工作文件上传功能编写规范。但是,作者为测试提供的示例代码要求我 action_controller/test_process 所以我有机会 ActionController::UploadedStringIO 上课。我以前在rails 2.x中使用过这个,但是对于rails 3,它找不到 test_process 文件。

    如何在rails 3中测试文件上传功能?

    3 回复  |  直到 14 年前
        1
  •  23
  •   Melinda Weathers    13 年前

    我可以使用fixture_file_上传Rails3和rspec。

    我刚加了一句 include ActionDispatch::TestProcess

    fixture_file_upload(Rails.root.join("spec/support/test.png"), 'image/png')
    

    编辑:我升级的内容更改了此操作的行为,使其始终包含设备路径,因此我切换到此操作而不是设备文件上载:

    Rack::Test::UploadedFile.new(Rails.root.join("spec/support/test.png"), 'image/png')
    
        2
  •  4
  •   MissingHandle    14 年前

    我正在测试rails 3中的文件上传,虽然我不知道我的答案会有多大帮助。你能改一下测验吗?就我个人而言,我用的是黄瓜/水豚的方法。水豚的DSL定义

    attach_file('Image', '/path/to/image.jpg')
    

    就个人而言,这似乎是一种比与StringIO对象交互更好的测试方法……请随意反驳。

        3
  •  3
  •   BeepDog    14 年前

    你仍然可以使用 fixture_file_upload 函数,但必须添加:

    include ActionDispatch::TestProcess

    你的测试用例。

    这对Rspec根本不起作用。我只需要抓起文件本身,直接发布文件。