Burada yayınlanan benzer bir hata var, ama hepsi benim sorunumu gidermez.devise atar ile rspec entegrasyon testi NoMethodError hatası
Dosyam 'Spec/istek/news_controller_spec.rb' benziyor: Testi çalıştırırsanız
require 'spec_helper'
describe "NewsController" do
include Devise::TestHelpers
describe "GET /news" do
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:user]
@user = Factory.create(:user)
@user.confirm!
sign_in @user
end
it "after login should show the latest news an screen" do
page.should have_content("News")
end
end
end
Ben alırsınız:
Failures:
1) Campaigns GET /news works!
Failure/Error: Unable to find matching line from backtrace
NoMethodError:
undefined method `env' for nil:NilClass
# /Users/.../gems/devise-1.5.3/lib/devise/test_helpers.rb:25:in `setup_controller_for_warden'
# /Users/.../gems/rspec-rails-2.8.1/lib/rspec/rails/adapters.rb:15:in `block (2 levels) in setup'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/hooks.rb:35:in `instance_eval'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/hooks.rb:35:in `run_in'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/hooks.rb:70:in `block in run_all'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/hooks.rb:70:in `each'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/hooks.rb:70:in `run_all'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/hooks.rb:368:in `run_hook'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:292:in `block in run_before_each_hooks'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:292:in `each'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:292:in `run_before_each_hooks'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example.rb:217:in `run_before_each'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example.rb:79:in `block in run'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example.rb:77:in `run'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:355:in `block in run_examples'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:351:in `map'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:351:in `run_examples'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:337:in `run'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:338:in `block in run'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:338:in `map'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/example_group.rb:338:in `run'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:28:in `map'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:28:in `block in run'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/reporter.rb:34:in `report'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/command_line.rb:25:in `run'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:80:in `run_in_process'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:69:in `run'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/runner.rb:10:in `block in autorun'
Ben https://github.com/plataformatec/devise/wiki/How-To%3a-Controllers-and-Views-tests-with-Rails-3-%28and-rspec%29 ve benzeri diğer talimatları takip Burada sorular var, ama bir çözüm bulamıyorum. ,
- Kapibara (1.1.2)
- vasiyetle (1.5.3)
- factory_girl_rails (1.6.0)
- raylar (3.2.0:
aşağıdaki gemset kullanıyorum 3.1.1)
- RSpec (2.8.0)
- RSpec çekirdekli (2.8.0)
- RSpec-beklentiler (2.8.0)
- RSpec-mocks (2.8.0)
- RSpec-raylar (2.8.1)
ve diğer bazı taşlar.
Oturum açmış bir kullanıcıyla tümleştirme sınamalarımın çalıştırılmasına yardımcı olan herhangi biri bana yardımcı olabilir. Bu durumda haberler yalnızca bir kullanıcı giriş yaptığında görüntülenir.
Teşekkürler.
musunuz? * Rspec-raylar-2.0.0 ve devise-1.1'den itibaren, teknik özelliklerinizi geliştirmenin en iyi yolu aşağıdakileri spec_helper'a eklemektir: * https://gist.github.com/1682113 – jibiel
Umarım öyle olur. _spec/support/devise.rb_ bir dosyam var ve bu dosyada 'RSpec.configure do | config | yazdım. config.include Devise :: TestHelpers,: type =>: controller end'. Destek dizinindeki dosyalar "Dir [Rails.root.join" ("spec/support/**/*. Rb")] ile belirtilmelidir. f} gerektirir. Sağ? –
http://stackoverflow.com/questions/6725169/testing-models-with-rspec-using-devise Kesinlikle unuttuysanız: type =>: controller' part. Sadece kaldırıldı ve aynı hatayı aldım. – jibiel