On Jul 5, 2010, at 9:52 AM, Pixel wrote:
> In an effort to teach myself BDD I'm trying it out. I'm trying to do a
> simple (should be straightforward) spec on my application.html.haml file
> first looking for a div tag with the class 'nav' it seems that rspec isn't
> able to render the app/views/layouts/application.html.haml file.
> Gist with command/error/backtrace:
> http://gist.github.com/463978#file_gistfile1.txt
Short version:
Don't pass anything to render() in the spec. It'll do the right thing as long
as you name the template in the string passed to describe:
require "spec_helper"
describe "layouts/application.html.haml" do
it "displays a navigation area" do
render
rendered.should have_selector('div#nav')
end
end
Only slightly longer version:
There are some confusing things about the render() method in ActionView::Base,
which is ultimately what renders the the template. View specs handle this for
you by building the hash that Rails' render() is looking for when you don't
pass anything to render. In this case, the example above results in the
equivalent of:
require "spec_helper"
describe "layouts/application.html.haml" do
it "displays a navigation area" do
render :template => "layouts/application.html.haml"
rendered.should have_selector('div#nav')
end
end
HTH,
David
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users