红宝石版本:2.7.2
导轨版本:6.1.0
RSpec 版本:3.10.1 (rspec-core) 和 4.0.2 (rspec-rails)
你好! 我正在尝试将我的应用程序从 6.0.3.4 升级到 Rails 6.1,并且在使用fixture_file_upload
方法时遇到错误。 当我调用此方法时,会引发以下异常:
NoMethodError:
undefined method `file_fixture_path' for RSpec::Rails::FixtureFileUploadSupport::RailsFixtureFileWrapper:Class
Did you mean? fixture_path
似乎ActionPack
改变了fixture_file_upload
的实现,并期望在RailsFixtureFileWrapper
类上有一个file_fixture_path
方法。
我希望这种方法可以上传文件而不会引发任何异常。
你可以在这里看到我的示例应用程序测试失败: https ://github.com/egiurleo/fixture-file-upload-test/blob/main/spec/fixture_file_upload_spec.rb
对于测试,我在spec/fixtures
文件夹中有一个 pdf 文件。 我正在尝试使用该文件的名称调用fixture_file_upload
方法,并且测试引发了我之前描述的异常。
file_fixture_path
的文档,因此我们将不胜感激。ActionPack
( lib/action_dispatch/testing/test_process.rb
) 中。感谢您的报告。 我们正在积极开发rspec-rails
4.1,您可以通过指向一个分支来访问它:
# Gemfile
gem 'rspec-rails', github: 'rspec/rspec-rails', branch: 'rails-6-1-dev'
修复程序包含在那里。
带来不便敬请谅解。
如果它仍然不适合您,请随时报告。
非常感谢你让我知道!
作为一个临时解决方法,我没有摆弄我的 Gemfile 并确保我拥有所有依赖项,而是在查看该方法的源代码后定义了自己的fixture_file_upload
方法:
def fixture_file_upload(path, mime_type)
Rack::Test::UploadedFile.new(Pathname.new(file_fixture_path).join(path), mime_type, false)
end
最有用的评论
感谢您的报告。 我们正在积极开发
rspec-rails
4.1,您可以通过指向一个分支来访问它:修复程序包含在那里。
带来不便敬请谅解。
如果它仍然不适合您,请随时报告。