Hi, I am in the process of upgrading my rails application to be compatible with rails 2.2.2. All is going well apart from a few remaining issues. My problem is: I am experiencing a test failure with what seems to be related to the "with_output_buffer" method found in "lib/action_view/ helpers/capture_helper.rb" and my use of the "button_to_function" method. The code itself works fine. It is simply the test itself that won't pass due to a NoMethodError exception. Note: I am currently using rspec & rspec-rails (184.108.40.206), although the same problem also exists when tested with the current stable version: 1.1.12. So, given the following helper module: --- module ImagesHelper def hide_images_button content_tag :div, :class => :hide_images_button do button_to_function "Hide Images", :id => :hide_images_button do | page| page[:more_images_button].toggle page[:image_browser].toggle end end end end --- With the accompanying test: --- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') describe ImagesHelper do it "should render a hide_images_button" do helper.hide_images_button.should have_tag('div[class=?]', 'hide_images_button') do with_tag('input[id=?][type=?][value=?][onclick^=?]', 'hide_images_button', 'button', 'Hide Images', "$ ("more_images_button").toggle();\n$ ("image_browser").toggle();;") end end end --- I am getting the following failure: --- F 1) NoMethodError in 'ImagesHelper should render a hide_images_button' You have a nil object when you didn't expect it! The error occurred while evaluating nil.with_output_buffer /home/oliver/git/greyville/app/helpers/images_helper.rb:4:in `hide_images_button' /home/oliver/git/greyville/app/helpers/images_helper.rb:3:in `hide_images_button' spec/helpers/images_helper_spec.rb:5: Finished in 0.025206 seconds 1 example, 1 failure --- Any bright ideas on how I can fix this issue? Your help would be much appreciated. Regards, Oliver Beddows.
on 2009-03-12 18:34
on 2009-03-13 07:03
On Sat, Mar 7, 2009 at 10:49 AM, karmacoma <firstname.lastname@example.org> wrote: > pass due to a NoMethodError exception. > button_to_function "Hide Images", :id => :hide_images_button do | > --- > end > You have a nil object when you didn't expect it! > --- > > Any bright ideas on how I can fix this issue? Your help would be much > appreciated. This was reported in lighthouse: http://rspec.lighthouseapp.com/projects/5645-rspec... And fixed: http://github.com/dchelimsky/rspec-rails/commit/80... If you follow the instructions on http://wiki.github.com/dchelimsky/rspec/edge and build 220.127.116.11 or .14 or just edge, you'll be fine.