gpt4 book ai didi

ruby-on-rails - 如何在 Rails 中测试文件上传以进行集成测试?

转载 作者:行者123 更新时间:2023-12-04 04:29:31 24 4
gpt4 key购买 nike

我做一些这样的集成测试:

 def user.excel_import
fixture_excel = fixture_file_upload('goodsins.xls', 'text/xls')
post excel_import_goods_ins_goods_ins_path, :dump=> {:excel_file=>fixture_excel}, :html => { :multipart => "true" }
assert_response :redirect
assert_redirected_to goods_ins_path
end

但是当我运行测试时说:goodins.xls 文件不存在。
仅供引用:我将文件放在名为 fixtures 的文件夹中。

任何的想法?非常感谢你

最佳答案

这里的注释:http://apidock.com/rails/ActionController/TestProcess/fixture_file_upload表示您需要在路径或文件名前包含斜杠。

试试 fixture_file_upload('/goodsins.xls', 'text/xls')看看这是否有帮助。

fixture_file_upload 来源:

# File actionpack/lib/action_controller/test_process.rb, line 523
def fixture_file_upload(path, mime_type = nil, binary = false)
if ActionController::TestCase.respond_to?(:fixture_path)
fixture_path = ActionController::TestCase.send(:fixture_path)
end

ActionController::TestUploadedFile.new("#{fixture_path}#{path}",
mime_type, binary)
end

问题所有者的更新:

解决方案:

添加 include ActionDispatch::TestProcesstest_helper.rb

关于ruby-on-rails - 如何在 Rails 中测试文件上传以进行集成测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10978202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com