1. Include :
 
 
    group :development, :test do
   gem 'factory_girl_rails'
 end
 
 in Gemfile
 
2. bundle install
3. create factories.rb under spec folder
4. Add the factory definitions in it :
 
 FactoryGirl.define do
   factory :user do
     email 'elinora@zepho.com'
     password 'welcome'
     primary_paypal_email 'elinora.price@zepho.com'
   end
   # product factory with a belongs_to association for the user
   factory :product do
     name 'TDD Workbook'
     price 49.99
     user
     thanks_page 'www.zepho.com/thanks.html'
     cancel_page 'www.zepho.com/cancel.html'
     sales_page 'www.zepho.com/sales_page.html'
     download_page 'www.zepho.com/download.html'  
   end
 end
 
 In this definition I have factory for user has_many :products relationship.
5. Create a support directory and include controller_macros.rb in it:
 module ControllerMacros
   def login_user
     @request.env["devise.mapping"] = Devise.mappings[:user]
     user = FactoryGirl.create(:user)
     # user.confirm! # or set a confirmed_at inside the factory. Only necessary if you are using the confirmable module
     sign_in user
   end
 end
6. In spec_helper.rb add the devise helpers:
 RSpec.configure do |config|
   ...
   config.include Devise::TestHelpers, :type => :controller
   config.include ControllerMacros, :type => :controller
   ...
 end
7. In your controller spec, now you can do this:
  
   context 'User is logged in' do
    before do
      login_user
    end
    it 'should render index page' do
      get :index
      response.should be_success
    end
  end