ruby-on-rails - 为什么 Fixture_file_upload 在 RSpec 中不可用(没有 ActiveRecord)?

标签 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') }

在我的一种情况下,它引发了一个异常(exception):
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::...>

这行得通吗?显然我错过了一些东西......

最佳答案

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

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

关于ruby-on-rails - 为什么 Fixture_file_upload 在 RSpec 中不可用(没有 ActiveRecord)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54469435/

相关文章:

ruby-on-rails - 覆盖 gem 类超时的 30 秒超时

ruby-on-rails - 如何测试在不同实例上使用不同参数接收相同方法

ruby - Cucumber:如何实现功能目录特定的 support/hooks.rb 功能?

ruby-on-rails - Rails t.array 与 t.string 数组 :true, 默认:[]

ruby-on-rails - Rails 5 的 Omniauth-twitter 停止工作! OAuth::Unauthorized 403 Forbidden

ruby-on-rails - 阐明 Elasticsearch 的有用性

ruby-on-rails - Ubuntu 服务器上的 ROR、Redis、Resque、God 和 Cron - 启动

mysql - Ruby on Rails 和查询(理解问题)

ruby-on-rails - 创建默认 Rails 模型关联

ruby-on-rails - 参数错误 : Factory not registered