[rspec-users] Helpers that call helpers not working in specs?
dchelimsky at gmail.com
Mon Sep 15 18:34:46 EDT 2008
On Mon, Sep 15, 2008 at 4:06 PM, Christopher Bailey
<chris at cobaltedge.com> wrote:
> If I don't include them, then the helpers in LocationsHelper can't find/use
> the helpers in ApplicationHelper. Maybe this will help illustrate:
> test code:
> describe LocationsHelper do
> describe "location tree" do
> it "should not show siblings for state, country, or root level
> locations" do
> helper.location_tree(@oregon).should_not include_text(@hawaii.name)
> The location_tree method is defined in the module/helper LocationsHelper.
> But, it calls ApplicationHelper.markaby. When I run the above test, it
> can't find the markaby method/helper. It will only find markaby if I remove
> the leading "helper." from in front of the call, and also include
> ApplicationHelper (including this, when using helper. doesn't remedy it).
OK - in the short run, I'd do this as a workaround instead:
You can do that in a before block or in the examples directly.
This is a better option because you'll soon not have direct access to
the helper methods in the examples except through the helper object.
Next question is whether rspec-rails should just include the
ApplicationHelper module into the helper object. My instinct is yes.
> On Mon, Sep 15, 2008 at 11:15 AM, David Chelimsky <dchelimsky at gmail.com>
>> On Mon, Sep 15, 2008 at 12:26 PM, Christopher Bailey
>> <chris at cobaltedge.com> wrote:
>> > I'm trying to test some of my helpers. I have one helper (in module
>> > LocationsHelper) that calls a helper/method in ApplicationHelper. If I
>> > include ApplicationHelper and LocationHelper in my spec, and then I call
>> > the
>> > helper using the "helper." scope:
>> > helper.location_tree('Portland')
>> > then it complains that it can't find the other helper it uses from
>> > ApplicationHelper. If instead, I call it directly:
>> > location_tree('Portland')
>> > Then, it can't find the Rails' generated URL helpers (e.g.
>> > "location_path"
>> > or "location_url"). How do I make it so that all the dependencies or
>> > Rails'
>> > included stuff is found?
>> You don't need to include the helpers if you are using the helper
>> object. You should be able to do just this:
>> describe LocationsHelper do
>> it "should ..." do
>> helper.location_tree('Portland').should ...
>> Have you tried that? Does it fail?
>> rspec-users mailing list
>> rspec-users at rubyforge.org
> Christopher Bailey
> Cobalt Edge LLC
> rspec-users mailing list
> rspec-users at rubyforge.org
More information about the rspec-users