如何在Rspec中测试环境变量的存在

时间:2018-08-02 23:07:20

标签: ruby-on-rails ruby unit-testing rspec automated-tests

问题

有很多方法可以实现该目标,但是我想知道什么是测试Ruby on Rails项目中环境变量是否存在的最佳方法。

上下文

我们最近在一个Rails项目中遇到了与缺少环境变量有关的生产问题。

为防止再次发生这种情况,我想测试application.yml配置文件中环境变量的存在。

我正在使用Ruby 2.5,Rails 4.2,Spring2。

1 个答案:

答案 0 :(得分:2)

除非绝对在application.yml中进行检查是绝对要求(为什么?),这是我的看法。制作一个config/initializers/env.rb并放在类似的地方

%i[FOO BAR BAZ].each do |var|
  ENV[var] = ENV.fetch(var)
end

此操作将读取所有必需的环境变量(FOO,BAR,BAZ等),并Hash#fetch读取它们,如果在启动时未设置此变量,则会“提高”。