<br><br><div><span class="gmail_quote">On 7/16/07, <b class="gmail_sendername">David Chelimsky</b> <<a href="mailto:dchelimsky@gmail.com">dchelimsky@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On 7/15/07, Daniel N <<a href="mailto:has.sox@gmail.com">has.sox@gmail.com</a>> wrote:<br>><br>><br>><br>> On 7/16/07, Daniel N <<a href="mailto:has.sox@gmail.com">has.sox@gmail.com</a>> wrote:<br>
> ><br>> ><br>> ><br>> ><br>> > On 7/15/07, David Chelimsky < <a href="mailto:dchelimsky@gmail.com">dchelimsky@gmail.com</a>> wrote:<br>> > > On 7/14/07, Daniel N <<a href="mailto:has.sox@gmail.com">
has.sox@gmail.com</a>> wrote:<br>> > > ><br>> > > ><br>> > > > On 7/15/07, David Chelimsky < <a href="mailto:dchelimsky@gmail.com">dchelimsky@gmail.com</a>> wrote:<br>> > > > > On 7/14/07, Daniel N <
<a href="mailto:has.sox@gmail.com">has.sox@gmail.com</a>> wrote:<br>> > > > > > Hi,<br>> > > > > ><br>> > > > > > I've just started to try and spec my application.html.erb
layout<br>> as one<br>> > > > of<br>> > > > > > the view specs but it totally barfs.<br>> > > > > ><br>> > > > > > I'm guessing that it's due to the yield statements in the layout.
<br>> > > > > ><br>> > > > > > Any clues as to how to proceed?<br>> > > > ><br>> > > > > Backtrace please? Could be any number of things.<br>> > > > >
<br>> > > > > ><br>> > > ><br>> > > > Sorry, here it is<br>> > > ><br>> > > > ......rake aborted!<br>> > > > Command ruby<br>> > > >
<br>> -I"/Users/dneighman/Documents/Projects/rails_projects/update_to_clippings/vendor/plugins/rspec/lib"<br>> > > ><br>> "/Users/dneighman/Documents/Projects/rails_projects/update_to_clippings/vendor/plugins/rspec/bin/spec"
<br>> > > > "spec/controllers/books_controller_spec.rb"<br>> > > > "spec/controllers/sessions_controller_spec.rb"<br>> > > > "spec/controllers/users_controller_spec.rb"
<br>> > > > "spec/helpers/books_helper_spec.rb"<br>> > > > "spec/helpers/sessions_helper_spec.rb"<br>> > > > "spec/helpers/users_helper_spec.rb"<br>> > > > "spec/models/book_spec.rb"
<br>> > > > "spec/models/user_notifier_spec.rb"<br>> > > > "spec/models/user_spec.rb"<br>> > > > "spec/views/books/_detail.html.erb_spec.rb"<br>> > > > "spec/views/books/edit.html.erb_spec.rb"
<br>> > > > "spec/views/books/index.html.erb_spec.rb"<br>> > > > "spec/views/books/new.html.erb_spec.rb"<br>> > > > "spec/views/books/new_rjs.html.erb_spec.rb"
<br>> > > > "spec/views/books/rjs_index.html.erb_spec.rb"<br>> > > > "spec/views/books/show.html.erb_spec.rb"<br>> > > > "spec/views/layouts/application.html.erb_spec.rb"
<br>> --options<br>> > > ><br>> "/Users/dneighman/Documents/Projects/rails_projects/update_to_clippings/spec/spec.opts"<br>> > > > failed<br>> > > ><br>> /Users/dneighman/Documents/Projects/rails_projects/update_to_clippings/vendor/plugins/rspec/lib/spec/rake/spectask.rb:166:in
<br>> > > > `define'<br>> > > > /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3<br>> /lib/rake.rb:823:in<br>> > > > `verbose'<br>> > > ><br>> /Users/dneighman/Documents/Projects/rails_projects/update_to_clippings/vendor/plugins/rspec/lib/spec/rake/spectask.rb:138:in
<br>> > > > `define'<br>> > > > /usr/local/lib/ruby/gems/1.8/gems/rake-<br>> 0.7.3/lib/rake.rb:392:in<br>> > > > `call'<br>> > > ><br>> /usr/local/lib/ruby/gems/1.8/gems/rake-
0.7.3/lib/rake.rb:392:in<br>> > > > `execute'<br>> > > ><br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:392:in<br>> > > > `each'<br>> > > ><br>> /usr/local/lib/ruby/gems/1.8/gems/rake-
0.7.3/lib/rake.rb:392:in<br>> > > > `execute'<br>> > > ><br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:362:in<br>> > > > `invoke'<br>> > > > /usr/local/lib/ruby/gems/1.8/gems/rake-
<br>> 0.7.3/lib/rake.rb:355:in<br>> > > > `synchronize'<br>> > > ><br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:355:in<br>> > > > `invoke'<br>> > > >
<br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1739:in<br>> > > > `top_level'<br>> > > ><br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1739:in<br>> > > > `each'
<br>> > > ><br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1739:in<br>> > > > `top_level'<br>> > > > /usr/local/lib/ruby/gems/1.8/gems/rake-<br>> 0.7.3/lib/rake.rb:1761:in
<br>> > > > `standard_exception_handling'<br>> > > ><br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1733:in<br>> > > > `top_level'<br>> > > > /usr/local/lib/ruby/gems/1.8/gems/rake-
<br>> > > > 0.7.3/lib/rake.rb:1711:in `run'<br>> > > ><br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1761:in<br>> > > > `standard_exception_handling'<br>> > > >
<br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1708:in<br>> > > > `run'<br>> > > > /usr/local/lib/ruby/gems/1.8/gems/rake-<br>> 0.7.3/bin/rake:7<br>> > > > /usr/local/bin/rake:16:in `load'
<br>> > > > /usr/local/bin/rake:16<br>> > > ><br>> > > > And the test is<br>> > > ><br>> > > > require File.dirname (__FILE__) + '/../../spec_helper'<br>
> > > ><br>> > > > describe "/layouts/application.html.erb" do<br>> > > ><br>> > > > it "should render" do<br>> > > > render "/layouts/application.html.erb"
<br>> > > > end<br>> > > ><br>> > > ><br>> > > > end<br>> > ><br>> > > Thanks. Unfortunately there's nothing in that backtrace that talks<br>> > > about
application.html.erb. Would you please run this command and post<br>> > > the result?<br>> > ><br>> > > script/spec spec/views/layouts/application.html.erb -b<br>> > ><br>> > > Thanks,
<br>> > > David<br>> ><br>> ><br>> > Hi David,<br>> ><br>> > Very strange indeed. I had to change the command to<br>> > script/spec<br>> spec/views/layouts/application.html.erb_spec.rb -b
<br>> ><br>> > When I run this I get no errors at all. But I also get no output at all.<br>> ><br>> > When I run the focused example in Textmate it passes but there is no<br>> listing of the example in the output. This is the same as running the
<br>> Behaviour Description<br>> ><br>> > It also does not seem to fail anything. I ran the following<br>> ><br>> ><br>> > > def do_render<br>> > > render "/layouts/application.html.erb"
<br>> > > end<br>> > ><br>> > > it "should render the template" do<br>> > > do_render<br>> > > response.should have_tag("not_there_tag")<br>> > > flunk
<br>> > > end<br>> ><br>> > This seems to pass everything. But when I run it with<br>> > rake spec I get the same error as before<br>> ><br>> > In an attempt to see if it is running the template at all I put a dodgy
<br>> method call in the template to try to crash it. It crashes.<br>> ><br>> > Here's the stack trace<br>> ><br>> > ActionView::TemplateError in '/layouts/application.html.erb should render
<br>> the template'<br>> > undefined local variable or method `bad_method' for<br>> #<#<Class:0x3344718>:0x33446f0><br>> > On line #14 of app/views/layouts/application.html.erb<br>> >
<br>> > 11: <%= javascript_include_tag :defaults, 'lowpro' -%><br>> > 12: <%= stylesheet_link_tag 'common' -%><br>> > 13: <%= resource_on_demand %>
<br>> > 14: <%= bad_method %><br>> > 15:<br>> > 16: </head><br>> > 17:<br>> ><br>> ><br>> #{RAILS_ROOT}/app/views//layouts/application.html.erb:14:in
<br>> `_run_erb_47app47views47layouts47application46html46erb'<br>> > /usr/local/lib/ruby/gems/1.8/gems/actionpack-<br>> 1.13.3.6752/lib/action_view/base.rb:346:in `send'<br>> ><br>> /usr/local/lib/ruby/gems/1.8/gems/actionpack-
1.13.3.6752/lib/action_view/base.rb:346:in<br>> `compile_and_render_template'<br>> > /usr/local/lib/ruby/gems/1.8/gems/actionpack-<br>> 1.13.3.6752/lib/action_view/base.rb:322:in `render_template_old'
<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/stable/lib/haml/template.rb:96:in<br>> `render_template'<br>> ><br>> /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3.6752<br>> /lib/action_view/base.rb:282:in `render_file'
<br>> ><br>> /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3.6752/lib/action_controller/base.rb:854:in<br>> `render_file'<br>> > /usr/local/lib/ruby/gems/1.8/gems/actionpack-<br>> 1.13.3.6752
/lib/action_controller/base.rb:789:in<br>> `render_with_no_layout'<br>> ><br>> /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3.6752/lib/action_controller/layout.rb:258:in<br>> `render_without_benchmark'
<br>> > /usr/local/lib/ruby/gems/1.8/gems/actionpack-<br>> 1.13.3.6752/lib/action_controller/benchmarking.rb:51:in<br>> `render'<br>> > /usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'
<br>> ><br>> /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3.6752/lib/action_controller/benchmarking.rb:51:in<br>> `render'<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/view.rb:55:in
<br>> `send'<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/view.rb:55:in<br>> `render'<br>> > spec/views/layouts/application.html.erb_spec.rb:6:in<br>
> `do_render'<br>> > spec/views/layouts/application.html.erb_spec.rb:10<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/example.rb:81:in<br>> `instance_eval'<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/example.rb:81:in
<br>> `run_example'<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/example.rb:26:in<br>> `run'<br>> > /usr/local/lib/ruby/1.8/timeout.rb:48:in `timeout'<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/example.rb:24:in
<br>> `run'<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/behaviour.rb:80:in<br>> `run'<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/behaviour.rb:74:in<br>> `each'
<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/behaviour.rb:74:in<br>> `run'<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb:58:in<br>> `run_behaviours'
<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb:57:in<br>> `each'<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb:57:in<br>> `run_behaviours'
<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb:21:in<br>> `run'<br>> ><br>> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/runner/command_line.rb:17:in<br>> `run'
<br>> > script/spec:4<br>> ><br>> > I've changed to a haml template, and used the same spec but with a<br>> different file (.haml) to render and it ran fine. Passes everything with<br>> complete listings etc.
<br>> ><br>> > I really don't know what to make of it.<br>> ><br>> > Cheers<br>> > Daniel<br>><br>><br>> David,<br>><br>> Thankyou for being so patient. I've discovered the issue. I'm basically
<br>> re-writing my app as I port it over to specs from a nasty mix of units and<br>> various plugins.<br>><br>> During the move I've started to test the application layout where it tries<br>> to render a parital that I haven't got yet.
<br>><br>> Once I take the render :partial call out for the non existing partial,<br>> everything went back to normal.<br>><br>> I hope I haven't wasted too much of your time. I'm really sorry.<br>
<br>No worries Daniel - when I don't have the time I don't deal w/ this stuff :)<br><br>Cheers,<br>David<br><br>><br>> Cheers<br>> Daniel<br>><br>><br>></blockquote><div><br><br>David,<br><br>I've gone through quite a few templates in haml now with specs and they all seem to work fine. I'm on edge rails. Don't know if that makes a difference.
<br><br>Cheers<br>Daniel<br></div><br></div><br>