RSpec :: Core :: ExampleGroup :: Nested_1 :: Factory uninitialized constant

I use rspec-guard to constantly run my tests, but sometimes tests fail due to:

Running: spec/requests/signup_spec.rb FF Failures: 1) Signup does not email confirmation mail after signup Failure/Error: visit new_user_path NameError: undefined local variable or method `new_user_path' for #<RSpec::Core::ExampleGroup::Nested_1:0x00000100ad5fd8> # ./spec/requests/signup_spec.rb:4:in `block (2 levels) in <top (required)>' 2) Signup should email confirmation mail after signup Failure/Error: user = Factory.build(:user) NameError: uninitialized constant RSpec::Core::ExampleGroup::Nested_1::Factory # ./spec/requests/signup_spec.rb:15:in `block (2 levels) in <top (required)>' 

Sometimes they work, and sometimes they do not work .. I donโ€™t know why ..

Can you help me?

EDIT: I am using the following versions:

  • ruby 1.9.2-p290
  • rails 3.1.rc4
  • rspec (2.6.0)
  • rspec-rails (2.6.1)
  • factory_girl (2.0.0.rc4)
  • factory_girl_rails (1.1.rc1)

And, as you can see, the arent routes also work: new_user_path not found ...?

And this is my request specification:

 # -*- encoding : utf-8 -*- describe "Signup" do it "does not email confirmation mail after signup" do visit new_user_path fill_in 'user_unconfirmed_email', :with => ' none@example.net ' fill_in 'user_password', :with => '' fill_in 'user_password_confirmation', :with => '' click_button "Create User" current_path.should eq(user_path) page.should have_content("is too short") last_email.should be_nil end it "should email confirmation mail after signup" do user = Factory.build(:user) visit root_path fill_in 'user_unconfirmed_email', :with => user.unconfirmed_email fill_in 'user_password', :with => user.unconfirmed_email fill_in 'user_password_confirmation', :with => user.unconfirmed_email click_button "Create User" current_path.should eq(root_path) page.should have_content("You successfully signed up! An email with your activation link was sent to your mail address.") last_email.to.should include(user.unconfirmed_email) last_email.body.should include(user.email_confirmation_key) open_email(user.unconfirmed_email) click_first_link_in_email # email spec current_path.should eq(new_user_path) page.should have_content "Your email was successfully confirmed. You are now able to log in with it!" end end 
+4
source share
3 answers

Argh ... found a solution .. I forgot to turn it on

 require 'spec_helper.rb' 

in my specifications ...

+19
source

I had the same problem, but in my case I forgot to restart spork.

Spork is a gem that significantly reduces the duration of the test with rspec. Recommended!

+2
source

I had the same problem, but in my case I mistakenly used my specification under spec / models, whereas it should have been in spec / requests.

+1
source

All Articles