【问题标题】:Include Rails config_for settings in rspec helper在 rspec 帮助程序中包含 Rails config_for 设置
【发布时间】:2016-05-17 09:01:59
【问题描述】:

有没有办法在 rspec 测试中包含 config_for 设置?我在 config/initialisers/settings.rb 中配置了以下设置:

SETTINGS = Rails.application.config_for(:settings)

但它们不会在 rspec 中自动加载,它会触发以下内容:

 Failure/Error: generator = SETTINGS['my_strategy'].constantize.new(file)

 NoMethodError:
   undefined method `constantize' for nil:NilClass

由于它不是模块或类,我不能以正常方式包含它并执行以下操作:

config.include Rails.application, type: :controller

在我看来,这不是正确的做法。

【问题讨论】:

  • 实际用例是什么?
  • 这种情况是 rspec 没有自动加载通常由 Rails::Application 自动加载的所需常量,特别是“config_for”常量。
  • 这个常量在哪里定义?
  • config/initialisers/settings.rb

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


【解决方案1】:

经过一番挖掘,我找不到可以加载 config_for 设置的 rspec 助手。我通过执行以下操作解决了这个问题:

before :all do
  SETTINGS['my_strategy'] = 'StrategyClass'
end

这解决了常量的加载问题。

【讨论】:

  • 其实这只解决了一个常量的使用。你应该定义你需要的每一个。
猜你喜欢
  • 2012-12-29
  • 1970-01-01
  • 2018-11-06
  • 2011-05-16
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 2020-08-24
  • 2014-11-07
相关资源
最近更新 更多