1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
# RSpec::StubbedEnv
ENV stubbing via a shared context for more powerful tests.
```ruby
describe 'my stubbed test' do
include_context 'with stubbed env'
before do
stub_env('FOO' => 'is bar')
end
it 'has a value' do
expect(ENV['FOO']).to eq('is bar')
end
end
```
| Project | RSpec::StubbedEnv |
|------------------------ | ----------------------- |
| gem name | [rspec-stubbed_env](https://rubygems.org/gems/rspec-stubbed_env) |
| license | [](https://opensource.org/licenses/MIT) |
| download rank | [](https://github.com/pboling/rspec-stubbed_env) |
| version | [](https://rubygems.org/gems/rspec-stubbed_env) |
| continuous integration | [](https://travis-ci.org/pboling/rspec-stubbed_env) |
| test coverage | [](https://codeclimate.com/github/pboling/rspec-stubbed_env/test_coverage) |
| maintainability | [](https://codeclimate.com/github/pboling/rspec-stubbed_env/maintainability) |
| dependencies | [](https://depfu.com/github/pboling/rspec-stubbed_env?project_id=5884) |
| code triage | [](https://www.codetriage.com/pboling/rspec-stubbed_env) |
| homepage | [on Github.com][homepage], [on Railsbling.com][blogpage] |
| documentation | [on RDoc.info][documentation] |
| Spread ~♡ⓛⓞⓥⓔ♡~ | [🌍 🌎 🌏](https://about.me/peter.boling), [🍚](https://www.crowdrise.com/helprefugeeswithhopefortomorrowliberia/fundraiser/peterboling), [➕](https://plus.google.com/+PeterBoling/posts), [👼](https://angel.co/peter-boling), [🐛](https://www.topcoder.com/members/pboling/), [:shipit:](http://coderwall.com/pboling), [](http://twitter.com/galtzo) |
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'rspec-stubbed_env', group: :test
```
And then execute:
$ bundle
Or install it yourself as:
$ gem install rspec-stubbed_env
You must configure RSpec to use the `:expect` syntax, or some compatible alternative.
```ruby
RSpec.configure do |config|
config.expect_with :rspec do |c|
c.syntax = :expect
end
end
```
## Usage
ENV stubbing:
- is opt-in, via a shared context, rather than global.
- *does not* affect the real ENV at all. It is a true stub.
- has the same scope as a `before`, `subject`, or `let` at the same level.
See the spec suite for detailed examples.
```ruby
# This is normal, without stubbing, ENV is not set
describe 'vanilla' do
it 'has no ENV stub' do
expect(ENV['FOO']).to be_nil
end
end
# With a stubbed ENV!
describe 'my stubbed test' do
include_context 'with stubbed env'
before do
stub_env('FOO' => 'is bar')
end
it 'has a value' do
expect(ENV['FOO']).to eq('is bar')
end
end
```
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/pboling/rspec-stubbed_env.
## Code of Conduct
Everyone interacting in the AnonymousActiveRecord project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/pboling/rspec-stubbed_env/blob/master/CODE_OF_CONDUCT.md).
## Versioning
This library aims to adhere to [Semantic Versioning 2.0.0][semver].
Violations of this scheme should be reported as bugs. Specifically,
if a minor or patch version is released that breaks backward
compatibility, a new version should be immediately released that
restores compatibility. Breaking changes to the public API will
only be introduced with new major versions.
As a result of this policy, you can (and should) specify a
dependency on this gem using the [Pessimistic Version Constraint][pvc] with two digits of precision.
For example:
```ruby
spec.add_dependency 'rspec-stubbed_env', '~> 1.0'
```
## License
* Copyright (c) 2018 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
[](https://opensource.org/licenses/MIT)
[license]: LICENSE
[semver]: http://semver.org/
[pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
[railsbling]: http://www.railsbling.com
[peterboling]: http://www.peterboling.com
[documentation]: http://rdoc.info/github/pboling/rspec-stubbed_env/frames
[homepage]: https://github.com/pboling/rspec-stubbed_env/
[blogpage]: http://www.railsbling.com/tags/rspec-stubbed_env/
|