Project

stub_env

0.04
No release in over 3 years
Low commit activity in last 3 years
RSpec helper for stubbing ENV values
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 1.0
~> 10.0

Runtime

< 4.0, >= 2.0
 Project Readme

Stub Env

Gem Version Build Status

This project provides a simple helper method to stub ENV values within RSpec tests.

To start using it, install the gem in your project in the test group.

  gem 'stub_env'

Then add the following to your rails_config.rb

RSpec.configure do |config|
  config.include StubEnv::Helpers
end

There are 2 possible usages. The first is to stub a single value:

  stub_env('key', 'value')

  puts ENV['key'] # => "value"
  puts ENV.fetch('key') # => "value"

These will work in series, so you can stub multiple values by making multiple calls:

  stub_env('key1', 'value1')
  stub_env('key2', 'value2')

  puts ENV['key1'] # => "value1"
  puts ENV['key2'] # => "value2"
  puts ENV.fetch('key1') # => "value1"
  puts ENV.fetch('key2') # => "value2"

The second method is to stub multiple values using a hash:

  stub_env({'key' => 'value', 'key2' => 'value2'})

  puts ENV['key1'] # => "value1"
  puts ENV['key2'] # => "value2"
  puts ENV.fetch('key1') # => "value1"
  puts ENV.fetch('key2') # => "value2"

You can also use this multiple times, and in combination with the other method:

  stub_env({'key1' => 'value1', 'key2' => 'value2'})
  stub_env('key3', 'value3')
  stub_env({'key4' => 'value4'})

  puts ENV['key1'] # => "value1"
  puts ENV['key2'] # => "value2"
  puts ENV['key3'] # => "value3"
  puts ENV['key4'] # => "value4"
  puts ENV.fetch('key1') # => "value1"
  puts ENV.fetch('key2') # => "value2"
  puts ENV.fetch('key3') # => "value3"
  puts ENV.fetch('key4') # => "value4"

All ENV values not stubbed will return their original values.

  # Given ENV['unstubbed_key'] = 'unstubbed_value'
  stub_env('key', 'value')

  puts ENV['key'] # => "value"
  puts ENV['unstubbed_key'] # => "unstubbed_value"
  puts ENV.fetch('key') # => "value"
  puts ENV.fetch('unstubbed_key') # => "unstubbed_value"