Rails de, de legs, Rspec: Undefined method 'sign_in'

Je suis en train d'écrire des tests Rspec dans les Rails, à l'aide de Concevoir des méthodes d'assistance pour la connexion et déconnexion. Le sign_in méthode ne fonctionne pas. Cependant, il a été de travailler plus tôt, avant qu'une série de modifications à l'application.

Choses que j'ai essayé:

  • Je suis y compris le test des aides dans Rspec.configurer.
  • À l'aide du directeur de login_as
  • De compensation les Rails cache.
  • Se débarrasser de Capybara pour voir si qui ont été à l'origine du problème
  • Je ne suis pas le réglage de la session explicitement dans mon contrôleur spécifications (par exemple, pas de valid_session)

Jusqu'à présent, pas de dés. Que dois-je faire différemment pour tester mon contrôleurs avec un utilisateur connecté?

Message d'erreur:

 OrderItemsController GET #index renders the :index view
 Failure/Error: sign_in :admin
 NoMethodError:
      undefined method `sign_in' for #  <RSpec::ExampleGroups::OrderItemsController_2::GETIndex:0x00000102c002d0>
 # ./spec/controllers/order_items_controller_spec.rb:6:in `block (2 levels) in <top (required)>'

Contrôleur Spec

require 'spec_helper'

describe OrderItemsController do
    before (:each) do
        admin = create(:admin)
        sign_in :admin
    end

    describe "GET #index" do
        it "renders the :index view" do
            get :index
            expect( response ).to render_template :index
        end
    end
end

spec_helper.rb.rb

require 'rspec/rails'
require 'capybara/rspec'

RSpec.configure do |config|

  config.include ApplicationHelper
  config.include ControllersHelper
  config.include UsersHelper
  config.include Devise::TestHelpers, type: :controller
  config.include FactoryGirl::Syntax::Methods

end

Gemfile

group :development, :test do
    gem 'rspec-rails', '~> 3.0.0.beta'
    gem 'capybara'
    gem 'factory_girl_rails'
    gem 'faker'
    gem 'dotenv-rails'
    gem 'guard'
    gem 'guard-annotate'
    gem 'guard-rspec', require: false
    gem 'guard-livereload', require: false
    gem 'foreman'
end

usines/utilisateur.rb

FactoryGirl.define do

    factory :user do
        first                   { Faker::Name.first_name }
        last                    { Faker::Name.last_name }
        email                   { Faker::Internet.email }
        admin                   false
        password                "secrets1"
        password_confirmation   "secrets1"
        confirmed_at            Date.today

        factory :admin do
            admin               true
        end
    end
end

Merci d'avance.

InformationsquelleAutor steel | 2014-05-25