 
                    RSpec Mocks
by Leo Liang
Environment Variables
There might be times when you need to mock a certain value for ENV without overriding other values. This can be easily achieved as follows:
ruby
    before do
      allow(ENV).to receive(:[]).and_call_original
      allow(ENV).to receive(:[]).with('REPORT_ID').and_return('5707702298738688')
    end
This will only stub ENV['REPORT_ID'] and return value for all the other env vars.
Date.today
Normally we use Timecop to set dates. But you need to remember to run Timecop.return afterwards to avoid any unexpected behaviour:
```ruby describe “some set of tests to mock” do before do Timecop.freeze(Time.local(1990)) end
    after do
        Timecop.return
    end
    it "should do blah blah blah" do
    end
end ```
Using Faker for Factories
by 34
Faker for Factories makes it easier when trying to create multiple records with unique validations.
E.g
Lets say we have a User model with unique email.
``` #without using Faker FactoryGirl.define do factory :user do email “sameera@reinteractive.net” end end
FactoryGirl.create_list(:user, 25) # this will fail as the email us not unique ```
``` #with faker FactoryGirl.define do factory :user do email { Faker::Internet.email } end end
FactoryGirl.create_list(:user, 25) # ‚úÖ üíµ ```