How to solve NameError: undefined local variable or method `user'

51 views
Skip to first unread message

Jaimin Pandya

unread,
Jun 3, 2014, 1:02:07 PM6/3/14
to rubyonra...@googlegroups.com
I am using Ruby 1.9.3 and Rails 3.2.16.

When I run test suite: bundle exec rspec spec/

I get following error:

1) Authentication authorization in the Users controller visiting the
following page
Failure/Error: before { visit following_user_path(user) }
NameError:
undefined local variable or method `user' for
#<RSpec::Core::ExampleGroup::Nested_7::Nested_3::Nested_3::Nested_2:0x00000006402418>
# ./spec/requests/authentication_pages_spec.rb:93:in `block (5
levels) in <top (required)>'

2) Authentication authorization in the Users controller visiting the
followers page
Failure/Error: before { visit followers_user_path(user) }
NameError:
undefined local variable or method `user' for
#<RSpec::Core::ExampleGroup::Nested_7::Nested_3::Nested_3::Nested_3:0x0000000640c2b0>
# ./spec/requests/authentication_pages_spec.rb:98:in `block (5
levels) in <top (required)>'

I attach authentication_pages_spec.rb file.

Please find it.

How can I solve this error?

Kind regards.

Attachments:
http://www.ruby-forum.com/attachment/9766/authentication_pages_spec.rb


--
Posted via http://www.ruby-forum.com/.

Antônio Augusto Sousa Britto

unread,
Jun 3, 2014, 1:52:16 PM6/3/14
to rubyonra...@googlegroups.com
You haven't assigned anything to the "user" variable used at line 93 inside the method call "following_user_path"

You coudl try to create an user using factory girl, inside your current scope, perhaps using:
let(:user) { FactoryGirl.create(:user) }

Anyway, I strongly recommend that you refactor this spec in order to make it DRY and use context blocks in advance of so many describe blocks.





--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/84116d65a1e1a910475ba54be20539bd%40ruby-forum.com.
For more options, visit https://groups.google.com/d/optout.



--
Att, Antônio Augusto de Sousa Britto - 43ª turma de Ciência da Computação - UFU

Jaimin Pandya

unread,
Jun 3, 2014, 2:16:14 PM6/3/14
to rubyonra...@googlegroups.com
Antônio Augusto Sousa Britto wrote in post #1148726:
> You haven't assigned anything to the "user" variable used at line 93
> inside
> the method call "following_user_path"
>
> You coudl try to create an user using factory girl, inside your current
> scope, perhaps using:
> let(:user) { FactoryGirl.create(:user) }
>
> Anyway, I strongly recommend that you refactor this spec in order to
> make
> it DRY and use context blocks in advance of so many describe blocks.

I use following code

before { visitfollowing_user_path(FactoryGirl.create(:user)) }

in place of

before { visit following_user_path(user) } at line 93.

Now test is pass.

Is right way? can I move further in that chapter to implement
sample_app?

Kind regards.
Reply all
Reply to author
Forward
0 new messages