On Tue, May 24, 2011 at 10:34 PM, Paul P. <li...@ruby-forum.com> wrote:

> John,
>
>  I know this is quite old, but I wanted to apply your same example in
> Rspec 2.  I'm getting the following when I attempt to do so.
>
> application_helper.rb
> ===========================
> module ApplicationHelper
>
>  # Return a title on a per-page basis.
>  def title(page_title)
>    content_for(:title) { page_title }
>  end
>
> end
>
> application_helper_spec.rb
> ===========================
> require 'spec_helper'
>
> describe ApplicationHelper do
>
>  describe "#title" do
>    it "should pass through page title to tile variable" do
>      self.should_receive(:content_for).with(:title, "funtitle")
>      title "funtitle"
>    end
>  end
>
> end
>
>
> Results
> ==========================
>
>  1) ApplicationHelper#title should pass through page title to tile
> variable
>     Failure/Error: title "funtitle"
>       #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0xb0b4fb8>
> received :content_for with unexpected arguments
>         expected: (:title, "funtitle")
>              got: (:title)
>     # ./app/helpers/application_helper.rb:5:in `title'
>     # ./spec/helpers/application_helper_spec.rb:9:in `block (3 levels)
> in <top (required)>'
>
>  Can you see anything I'm doing wrong?
>
> Thanks,
> Paul
>
> --
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> rspec-users mailing list
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>

You actually want to use the "helper" method in helper specs. It is an
instance of ActionView::Base with the described helper module mixed in. Try
this:

helper.should_receive(:content_for).with(:title, "funtitle")
helper.title "funtitle"

More info:
http://relishapp.com/rspec/rspec-rails/v/2-6/dir/helper-specs/helper-spec
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to