为什么RSpec中没有fix_file_upload(没有ActiveRecord)?

时间:2019-01-31 21:22:55

标签: ruby-on-rails rspec ruby-on-rails-5 rspec-rails

我正在尝试在Rails 5.2应用程序中使用RSpec 3.7测试文件上传,而我所见过的最简单的建议(在多个地方,including this SO post)是使用fixture_file_upload-很好,只是它似乎在我的应用程序中不可用,而且我也不知道为什么。

我唯一想到的是我们的应用程序未使用ActiveRecord,而是使用了MongoID。但是ActiveRecord不需要使用这些方法...它们是完全无关的。我缺少Rails 5中的另一个新“ ActiveSomething”库吗? (此应用已从Rails 4应用升级...)

为了更具体地解释我的问题,我尝试过放置:

let(:file) { fixture_file_upload('invalid_csv.csv') }

在我的一种情况下,它引发了一个异常:

undefined local variable or method 'fixture_path' for #<RSpec::ExampleGroups::...>

我尝试定义config.file_fixture_path as outlined here,这引发了它自己的异常:

undefined method `file_fixture_path=' for #<RSpec::Core::Configuration::...>

这完全有用吗?显然我缺少了一些东西...

1 个答案:

答案 0 :(得分:1)

我通过在 RSpec 配置块中包含他们的模块来解决这个问题:

RSpec.configure do |config|
  #...
  config.include ActionDispatch::TestProcess::FixtureFile
  #...
end