Forum: RSpec problem running tests of helpers

Posted by Art Peel (Guest)
on 2011-03-24 05:49
(Received via mailing list)
I'm in the process of upgrading from ruby 1.8.7 to ruby-1.9.2-p18  and 
from
rails 2.3.8 to rails 2.3.9 and my tests of helpers have stopped working, 
for
example script/spec spec/helpers/application_helper_spec.rb  (Full 
sample
shown below.)

The output is below.  The problem occurs in helper_example_group.rb when
trying
@controller.request = @request

I have not been able to figure out why @controller is nil.

A minimal rails project that reproduces the problem is available at
https://github.com/whenceforth/Helper-Test-Fail-Project

I'm using bundler.

script/spec --version
rspec 1.3.1

which ruby
/Users/art/.rvm/rubies/ruby-1.9.2-p180/bin/ruby

Thanks in advance for any pointers.

Art


# begin Gemfile
source :rubygems

gem 'mysql', '2.8.1'

gem 'rails', '2.3.11'

gem 'rspec', '1.3.1'
gem 'rspec-rails', '1.3.3'
gem 'test-unit', '1.2.3'

# end Gemfile

art-imac-3:Helper-Test-Fail-Project art$ script/spec --backtrace
spec/helpers/application_helper_spec.rb
F

1)
NoMethodError in 'ApplicationHelper#app_echo should echo'
undefined method `request=' for nil:NilClass
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/activesupport-2.3.11/lib/active_support/whiny_nil.rb:52:in
`method_missing'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-rails-1.3.3/lib/spec/rails/example/helper_example_group.rb:113:in
`block in <class:HelperExampleGroup>'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_methods.rb:74:in
`instance_eval'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_methods.rb:74:in
`block in eval_each_fail_fast'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_methods.rb:74:in
`each'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_methods.rb:74:in
`eval_each_fail_fast'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_group_hierarchy.rb:17:in
`run_before_each'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_methods.rb:107:in
`run_before_each'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_methods.rb:128:in
`before_each_example'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_methods.rb:39:in
`block in execute'
/Users/art/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/timeout.rb:44:in
`timeout'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_methods.rb:37:in
`execute'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_group_methods.rb:219:in
`block in run_examples'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_group_methods.rb:217:in
`each'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_group_methods.rb:217:in
`run_examples'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/example/example_group_methods.rb:103:in
`run'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/runner/example_group_runner.rb:23:in
`block in run'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/runner/example_group_runner.rb:22:in
`each'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/runner/example_group_runner.rb:22:in
`run'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/runner/options.rb:153:in
`run_examples'
/Users/art/.rvm/gems/ruby-1.9.2-p180@loyal3/gems/rspec-1.3.1/lib/spec/runner/command_line.rb:9:in
`run'
script/spec:5:in `<main>'

Finished in 0.02259 seconds

1 example, 1 failure
Posted by Jamie Orchard-hays (jamieorc)
on 2011-12-14 01:39
Did you ever find a work-around? My Helper Specs are broken in Ruby 
1.9.2, Rails 2.3.14, but fine in Ruby 1.8.7.

I get

undefined method `response=' for nil:NilClass

The nil class is @controller.

Been pulling my hair out on this. I've been searching the 'net for this 
problem, but finding almost nothing. (Makes me wonder if people are 
testing their helper methods ;-)

Jamie
Posted by Phillip Koebbe (Guest)
on 2011-12-14 03:46
(Received via mailing list)
On Dec 13, 2011, at 6:39 PM, Jamie Orchard-hays wrote:

> problem, but finding almost nothing. (Makes me wonder if people are
> testing their helper methods ;-)
>
> Jamie
>

Jamie,

Many people interact with this list by way of email and it's much easier 
on them if you quote the message when responding. If you don't, we don't 
have the context and have no idea what you might be asking. I had to go 
to the web forum to see what it was you were inquiring about.

I emailed Art directly a few months ago to ask if he found a solution, 
and this was his reply:

On 2011-09-07 12:49 AM, Art Peel wrote:
> Hi Phillip,
>
> Yes, I did.  The problem turned out to be related to bundler.  The easiest 
solution is to run "bundle exec spec" instead of just "spec".
>
> Another solution is to install the bundler binstubs as described at 
http://gembundler.com/ and then run "bin/spec" instead of just "spec"
>
> Hope this helps.
>
> -- Art

This was what worked for Art, but it was unrelated to my experience with 
the problem (I wasn't using bundler at the time). Unfortunately, I don't 
recall how I resolved it. So this may work for you, and it may not.

Peace.
Posted by Jamie Orchard-hays (jamieorc)
on 2011-12-14 17:39
Hey Phillip, thanks for the information and sorry about not quoting. 
I'll have a go at this.

Much appreciated,

Jamie

Phillip Koebbe wrote in post #1036638:
> On Dec 13, 2011, at 6:39 PM, Jamie Orchard-hays wrote:
>
>> problem, but finding almost nothing. (Makes me wonder if people are
>> testing their helper methods ;-)
>>
>> Jamie
>>
>
> Jamie,
>
> Many people interact with this list by way of email and it's much easier
> on them if you quote the message when responding. If you don't, we don't
> have the context and have no idea what you might be asking. I had to go
> to the web forum to see what it was you were inquiring about.
>
> I emailed Art directly a few months ago to ask if he found a solution,
> and this was his reply:
>
> On 2011-09-07 12:49 AM, Art Peel wrote:
>> Hi Phillip,
>>
>> Yes, I did.  The problem turned out to be related to bundler.  The easiest
> solution is to run "bundle exec spec" instead of just "spec".
>>
>> Another solution is to install the bundler binstubs as described at
> http://gembundler.com/ and then run "bin/spec" instead of just "spec"
>>
>> Hope this helps.
>>
>> -- Art
>
> This was what worked for Art, but it was unrelated to my experience with
> the problem (I wasn't using bundler at the time). Unfortunately, I don't
> recall how I resolved it. So this may work for you, and it may not.
>
> Peace.
Posted by Jamie Orchard-hays (jamieorc)
on 2011-12-14 19:19
I'm not using bundler either. If you happen to recall your solution, I'd
love to read about it.

Rather vexing, to say the least.

> I emailed Art directly a few months ago to ask if he found a solution,
> and this was his reply:
>
> On 2011-09-07 12:49 AM, Art Peel wrote:
>> Hi Phillip,
>>
>> Yes, I did.  The problem turned out to be related to bundler.  The easiest
> solution is to run "bundle exec spec" instead of just "spec".
>>
>> Another solution is to install the bundler binstubs as described at
> http://gembundler.com/ and then run "bin/spec" instead of just "spec"
>>
>> Hope this helps.
>>
>> -- Art
>
> This was what worked for Art, but it was unrelated to my experience with
> the problem (I wasn't using bundler at the time). Unfortunately, I don't
> recall how I resolved it. So this may work for you, and it may not.
>
> Peace.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.