我正在尝试在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::...>
这完全有用吗?显然我缺少了一些东西...
答案 0 :(得分:1)
我通过在 RSpec 配置块中包含他们的模块来解决这个问题:
RSpec.configure do |config|
#...
config.include ActionDispatch::TestProcess::FixtureFile
#...
end