Итак, я прочитал, как решить эту проблему:
и
http://lostincode.net/blog/testing-devise-controllers
Но под каким файлом я добавляю эти изменения, это моя проблема:
В папке rspec для моего
registrations_controller
Я пробовал это
before :each do
  request.env['devise.mapping'] = Devise.mappings[:user]
end
require 'spec_helper'
describe RegistrationsController do
  describe "GET 'edit'" do
    it "should be successful" do
      get 'edit'
      response.should be_success
    end
  end
end
Что не сработало, любая помощь с конкретными файлами, которые нужно изменить для выполнения этой работы, будет с благодарностью.
ИЗМЕНИТЬ
Поэтому я также пробовал -
поэтому я создал папку со спецификацией/поддержкой и сделал файл с именем controllers_macros.rb
module ControllerMacros
  def login_admin
    before(:each) do
      @request.env["devise.mapping"] = Devise.mappings[:admin]
      sign_in Factory.create(:admin) # Using factory girl as an example
    end
  end
  def login_user
    before(:each) do
      @request.env["devise.mapping"] = Devise.mappings[:user]
      user = Factory.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
end
И мой registrations_controller теперь это:
require 'spec_helper'
describe RegistrationsController do
  describe "GET 'edit'" do
    before :each do
      request.env['devise.mapping'] = Devise.mappings[:user]
    end
    it "should be successful" do
      get 'edit'
      response.should be_success
    end
  end
end
У меня есть другие контроллеры в rspec, мне нужно изменить каждый из них? Или я смущен тем, где внести изменения.
