2014-06-13 12 views
5

Używam aplikacji Rails 4 z RSpec i Capybara.Unitialized Constant Devise RSPEC

Moja gemfile wygląda następująco:

source 'https://rubygems.org' 
gem 'rails', '4.0.0' 
gem 'pg' 
gem 'devise' 
gem 'sass-rails', '~> 4.0.0' 
gem 'uglifier', '>= 1.3.0' 
gem 'coffee-rails', '~> 4.0.0' 
gem 'jquery-rails' 
gem 'jquery-turbolinks' 
gem 'turbolinks' 
gem "rspec-rails", :group => [:test, :development] 
group :test do 
    gem "factory_girl_rails", "~> 4.0" 
    gem "capybara" 
    gem "guard-rspec" 
end 

Mój plik spec_helper.rb wygląda następująco:

require "capybara/rspec" 
include Capybara::DSL 

RSpec.configure do |config| 
    config.include Devise::TestHelpers, :type => :controller 
    config.extend ControllerMacros, :type => :controller 
end 

Ale z jakiegoś powodu dostaję błąd: uninitialized constant Devise (NameError) . W mojej aplikacji Devise działa jednak poprawnie i mam plik ControllerMacros w specyfikacji/support.

+0

Jaki jest pełny ślad stosu? Gdzie występuje błąd? –

+0

proszę pokazać swój gemfile, a także powiedzieć, której wersji ruby ​​/ rails używasz? –

+0

Błędy występują w pliku spec_helper.rb –

Odpowiedz

8

to wypróbować:

Twój spec_helper powinno być jak

ENV["RAILS_ENV"] ||= 'test' 
require File.expand_path("../../config/environment",__FILE__) 
require 'rspec/rails' 
require "capybara/rspec" 
include Capybara::DSL 

RSpec.configure do |config| 
config.include Devise::TestHelpers, :type => :controller 
config.extend ControllerMacros, :type => :controller 
end 
+12

Dodaj linie konfiguracyjne do 'spec/rails_helper.rb' zamiast' spec/spec_helper.rb', jeśli używasz klejnotów rspec-rails – benjineer