I'm struggling with this controller spec for a few hours now
which is failing with an error I can't find any references about,
neither on the list nor on the web in general:
Admin::ImagesController handling PUT /images/1 with successful update
should find the image requested
undefined method `and_return' for #<Proc:0x30520b4>
/Users/oliver/Sites/spree/spec/controllers/admin/images_controller_spec.rb:17
/tmp/textmate-command-1859.rb:3
15 before(:each) do
16 @image = mock_model(Image, :to_param => "1")
17 Image.stub!(:find).and_return(@image)
18 end
why would and_return() not be recognized, while stub!() is?
has anybody experienced this problem before? I'm using rspec and
rspec-rails at version 1.2.6, with Rails 2.3.2, while customizing
Spree 0.8.99
thanks
Oliver
_______________________________________________
rspec-users mailing list
rspec...@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users
Please run this spec from the command line with --backtrace so we can
see the full backtrace. Thanks.
2009/8/26 Oliver Barnes <oli.azeve...@gmail.com>:
2009/8/27 David Chelimsky <dchel...@gmail.com>:
Big-Mac:spree(product-image-updates-fix) $ spec
spec/controllers/admin/images_controller_spec.rb --backtrace
/Users/oliver/Sites/spree/app/controllers/products_controller.rb:41:
warning: parenthesize argument(s) for future version
.FFFFF
1)
NoMethodError in 'Admin::ImagesController handling PUT /images/1 with
successful update should find the image requested'
undefined method `and_return' for #<Proc:0x30e1fd4>
./spec/controllers/admin/images_controller_spec.rb:17:
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:70:in
`instance_eval'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:70:in
`eval_each_fail_fast'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:70:in
`each'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:70:in
`eval_each_fail_fast'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_hierarchy.rb:17:in
`run_before_each'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:103:in
`run_before_each'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:124:in
`before_each_example'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:39:in
`execute'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:48:in
`timeout'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:37:in
`execute'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_methods.rb:207:in
`run_examples'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_methods.rb:205:in
`each'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_methods.rb:205:in
`run_examples'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_methods.rb:103:in
`run'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/runner/example_group_runner.rb:23:in
`run'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/runner/example_group_runner.rb:22:in
`each'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/runner/example_group_runner.rb:22:in
`run'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/runner/options.rb:127:in
`run_examples'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/lib/spec/runner/command_line.rb:9:in
`run'
/Library/Ruby/Gems/1.8/gems/rspec-1.2.8/bin/spec:4:
/usr/bin/spec:19:in `load'
/usr/bin/spec:19:
2009/8/27 Oliver Barnes <oli.azeve...@gmail.com>:
Is there ANY chance that Image or one of it's superclasses has defined
a stub! method which would override the one in Spec::Mocks::Methods ?
On Fri, Aug 28, 2009 at 6:02 PM, Oliver
--
Rick DeNatale
Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale
2009/8/28 Rick DeNatale <rick.d...@gmail.com>:
I'd be tempted to run the spec under rdebug, put a breakpoint before
the stub! call and step into it to see what's going on.
Image.stub!(:find, :return => @image)
did get me past the error.
I still can't get this spec to pass though:
updated spec:
and the controller being spec'ed:
2009/9/26 Borja Martín <bor...@dagi3d.net>:
Not sure where you got this syntax from, but it doesn't do anything.
Options are:
Image.stub(:find).and_return(@image)
Image.stub(:find => @image)
Image.stub(:find) { @image }
You can also use stub! in all 3 forms.
I followed Borja's suggestion (message before mine). he had the same
problem on a spree project, and traced it down to its use of the stump
gem's helpers, which require a different syntax
http://github.com/jeremymcanally/stump
2009/9/29 David Chelimsky <dchel...@gmail.com>: