[rspec-users] spec'ing helpers that use controller

Courtenay court3nay at gmail.com
Tue Jul 24 18:26:35 EDT 2007


Does this work?

  ApplicationHelper.stub!(:controller).and_return mock('controller',
:controller_name => 'foo')


On 7/24/07, Rick Tessner <rick.tessner at gmail.com> wrote:
> Hi all,
>
> I'm in the process of creating rspecs for my helpers.  One of the
> helpers in app/helpers/application_helper.rb looks like this:
>
>         def page_name
>           @page_name || "Define @page_name in
>         #{controller.controller_name}::#{controller.action_name}"
>         end
>
> The rspec is simply:
>
>         it "should something" do
>           page_name
>         end
>
> Running ./script/spec  spec/helpers/application_helper_spec.rb produces:
>
>         F
>
>         1)
>         NameError in 'ApplicationHelper hmmmm'
>         undefined local variable or method `controller' for [RSpec
>         example]:#<Class:0xb70de334>
>         /path/trunk/config/../app/helpers/application_helper.rb:21:in
>         `page_title'
>         ./spec/helpers/application_helper_spec.rb:6:
>         ./script/spec:4:
>
>         Finished in 0.024011 seconds
>
>         1 example, 1 failure
>
> The helper spec doesn't know about "controller".  Would I have to mock
> the controller?  If so, how?  If not, what would be the solution to
> writing a spec for this or any helper that might use "controller"?
>
> --
> Rick
> rick.tessner at gmail.com
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list