Если вы используете dotenv для настройки вашей среды во время тестов, но вам нужно изменить переменную env для конкретного теста , тогда может пригодиться следующий подход.
Более простой метод, чем заглушка ENV
, состоит в том, чтобы заменить среду на время теста, а затем восстановить ее следующим образом:
with_environment("FOO" => "baz") do
puts ENV.fetch("FOO")
end
Используя такой помощник (из Доморощенный источник ):
module Test
module Helper
module Env
def with_environment(partial_env)
old = ENV.to_hash
ENV.update partial_env
begin
yield
ensure
ENV.replace old
end
end
end
end
end
При использовании ensure
исходная среда восстанавливается, даже если тест не пройден.
Существует удобное сравнение методов для установка и изменение переменных среды во время тестов , включая заглушку ENV
, замену значений до / после теста и драгоценных камней, таких как ClimateControl.