<br><br><div><span class="gmail_quote">On 7/16/07, <b class="gmail_sendername">Daniel N</b> <<a href="mailto:has.sox@gmail.com">has.sox@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;">
<br><br><div><div><span class="e" id="q_113ca3508c3ccbd6_1"><span class="gmail_quote">On 7/15/07, <b class="gmail_sendername">David Chelimsky</b> <<a href="mailto:dchelimsky@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
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/14/07, Daniel N <<a href="mailto:has.sox@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">has.sox@gmail.com</a>> wrote:<br>><br>><br>> On 7/15/07, David Chelimsky <
<a href="mailto:dchelimsky@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">dchelimsky@gmail.com</a>> wrote:
<br>> > On 7/14/07, Daniel N <<a href="mailto:has.sox@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">has.sox@gmail.com</a>> wrote:<br>> > > Hi,<br>> > ><br>
> > > I've just started to try and spec my application.html.erb
layout 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>> -I"/Users/dneighman/Documents/Projects/rails_projects/update_to_clippings/vendor/plugins/rspec/lib"
<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" --options<br>> "/Users/dneighman/Documents/Projects/rails_projects/update_to_clippings/spec/spec.opts"
<br>> failed<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
/lib/rake.rb:823:in<br>> `verbose'<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-
0.7.3/lib/rake.rb:392:in<br>> `call'<br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:392:in<br>> `execute'<br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:392:in<br>> `each'
<br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:392:in<br>> `execute'<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-
0.7.3/lib/rake.rb:355:in<br>> `synchronize'<br>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:355:in<br>> `invoke'<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-0.7.3/lib/rake.rb:1739:in<br>> `each'<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-
0.7.3/lib/rake.rb:1761:in<br>> `standard_exception_handling'<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>> /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1761:in<br>> `standard_exception_handling'<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- 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</blockquote></span></div><div><br>Hi David,<br><br>Very strange indeed. I had to change the command to <br>script/spec 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 listing of the example in the output. This is the same as running the Behaviour Description <br><br>It also does not seem to fail anything. I ran the following
<br><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote"> def do_render<span class="q"><br> render "/layouts/application.html.erb"
<br> end<br>
<br></span> it "should render the template" do<br> do_render<br> response.should have_tag("not_there_tag")<br> flunk<br> end</blockquote></div><br></div>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 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 the template'<br>undefined local variable or method `bad_method' for #<#<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> #{RAILS_ROOT}/app/views//layouts/application.html.erb:14:in `_run_erb_47app47views47layouts47application46html46erb'<br> /usr/local/lib/ruby/gems/1.8/gems/actionpack-
1.13.3.6752/lib/action_view/base.rb:346:in `send'<br> /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3.6752/lib/action_view/base.rb:346:in `compile_and_render_template'<br> /usr/local/lib/ruby/gems/1.8/gems/actionpack-
1.13.3.6752/lib/action_view/base.rb:322:in `render_template_old'<br> #{RAILS_ROOT}/vendor/plugins/stable/lib/haml/template.rb:96:in `render_template'<br> /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3.6752
/lib/action_view/base.rb:282:in `render_file'<br> /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3.6752/lib/action_controller/base.rb:854:in `render_file'<br> /usr/local/lib/ruby/gems/1.8/gems/actionpack-
1.13.3.6752/lib/action_controller/base.rb:789:in `render_with_no_layout'<br> /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3.6752/lib/action_controller/layout.rb:258:in `render_without_benchmark'<br> /usr/local/lib/ruby/gems/1.8/gems/actionpack-
1.13.3.6752/lib/action_controller/benchmarking.rb:51:in `render'<br> /usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'<br> /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3.6752/lib/action_controller/benchmarking.rb:51:in `render'
<br> #{RAILS_ROOT}/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/view.rb:55:in `send'<br> #{RAILS_ROOT}/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/view.rb:55:in `render'<br> spec/views/layouts/application.html.erb_spec.rb:6:in `do_render'
<br> spec/views/layouts/application.html.erb_spec.rb:10<br> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/example.rb:81:in `instance_eval'<br> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/example.rb:81:in `run_example'
<br> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/example.rb:26:in `run'<br> /usr/local/lib/ruby/1.8/timeout.rb:48:in `timeout'<br> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/example.rb:24:in `run'
<br> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/behaviour.rb:80:in `run'<br> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/behaviour.rb:74:in `each'<br> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/dsl/behaviour.rb:74:in `run'
<br> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb:58:in `run_behaviours'<br> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb:57:in `each'<br> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb:57:in `run_behaviours'
<br> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb:21:in `run'<br> #{RAILS_ROOT}/vendor/plugins/rspec/lib/spec/runner/command_line.rb:17:in `run'<br> script/spec:4<br><br>I've changed to a haml template, and used the same spec but with a different
file (.haml) to render and it ran fine. Passes everything with complete
listings etc.<br><br>I really don't know what to make of it.<br><br>Cheers<br><span class="sg">Daniel</span></blockquote><div><br><br>David,<br><br>Thankyou for being so patient. I've discovered the issue. I'm basically re-writing my app as I port it over to specs from a nasty mix of units and various plugins.
<br><br>During the move I've started to test the application layout where it tries 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, everything went back to normal.
<br><br>I hope I haven't wasted too much of your time. I'm really sorry.<br><br>Cheers<br>Daniel<br></div><br></div><br>