Иногда возвращение другой переменной среды может быть головной болью (требуются переменные производственной среды, предупреждающие сообщения и т. Д.).
В зависимости от вашего случая, в качестве альтернативы вы можете просто вернуть значение, необходимое для теста, чтобы он думал, что он находится в другой среде.Например, если вы хотите, чтобы Rails поверил, что он находится в производстве для кода, проверяющего Rails.env.production?
, вы можете сделать что-то вроде этого:
it "does something specific when in production" do
allow(Rails.env).to receive(:production?).and_return(true)
##other assertions
end
Вы можете сделать то же самое для других сред, таких как :development?
,:staging?
и т. Д. Если вам не нужна полная возможность возврата полной среды, это может быть другой вариант.