Christopher Bailey
2008-Sep-15 17:26 UTC
[rspec-users] Helpers that call helpers not working in specs?
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? -- Christopher Bailey Cobalt Edge LLC http://cobaltedge.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20080915/f8ebc8f1/attachment.html>
David Chelimsky
2008-Sep-15 18:15 UTC
[rspec-users] Helpers that call helpers not working in specs?
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 ... end end Have you tried that? Does it fail?
Christopher Bailey
2008-Sep-15 21:06 UTC
[rspec-users] Helpers that call helpers not working in specs?
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) end end end 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). On Mon, Sep 15, 2008 at 11:15 AM, David Chelimsky <dchelimsky at gmail.com>wrote:> 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 ... > end > end > > Have you tried that? Does it fail? > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-- Christopher Bailey Cobalt Edge LLC http://cobaltedge.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20080915/a847bcd2/attachment.html>
David Chelimsky
2008-Sep-15 22:34 UTC
[rspec-users] Helpers that call helpers not working in specs?
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) > end > end > end > 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: helper.extend ApplicationHelper 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. WDYT? Cheers, David> > On Mon, Sep 15, 2008 at 11:15 AM, David Chelimsky <dchelimsky at gmail.com> > wrote: >> >> 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 ... >> end >> end >> >> Have you tried that? Does it fail? >> _______________________________________________ >> rspec-users mailing list >> rspec-users at rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users > > > > -- > Christopher Bailey > Cobalt Edge LLC > http://cobaltedge.com > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
Christopher Bailey
2008-Sep-16 04:23 UTC
[rspec-users] Helpers that call helpers not working in specs?
Thanks, that did the trick. And for including ApplicationHelper, I would say it should include it - because that would parallel Rails'' standard behavior. On Mon, Sep 15, 2008 at 3:34 PM, David Chelimsky <dchelimsky at gmail.com>wrote:> 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 > ) > > end > > end > > end > > 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: > > helper.extend ApplicationHelper > > 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. > WDYT? > > Cheers, > David > > > > > On Mon, Sep 15, 2008 at 11:15 AM, David Chelimsky <dchelimsky at gmail.com> > > wrote: > >> > >> 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 ... > >> end > >> end > >> > >> Have you tried that? Does it fail? > >> _______________________________________________ > >> rspec-users mailing list > >> rspec-users at rubyforge.org > >> http://rubyforge.org/mailman/listinfo/rspec-users > > > > > > > > -- > > Christopher Bailey > > Cobalt Edge LLC > > http://cobaltedge.com > > > > _______________________________________________ > > rspec-users mailing list > > rspec-users at rubyforge.org > > http://rubyforge.org/mailman/listinfo/rspec-users > > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-- Christopher Bailey Cobalt Edge LLC http://cobaltedge.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20080915/bb4eaf1b/attachment.html>