Rails, RSpec and Webrat: Expected output matches rendered output but still getting error in view spe

Posted by Anthony Burns on Stack Overflow See other posts from Stack Overflow or by Anthony Burns
Published on 2009-06-21T23:40:37Z Indexed on 2010/05/04 2:08 UTC
Read the original article Hit count: 461

Filed under:
|
|

Hello all,

I've just gotten started using BDD with RSpec/Cucumber/Webrat and Rails and I've run into some frustration trying to get my view spec to pass.

First of all, I am running Ruby 1.9.1p129 with Rails 2.3.2, RSpec and RSpec-Rails 1.2.6, Cucumber 0.3.11, and Webrat 0.4.4.

Here is the code relevant to my question

config/routes.rb:

map.b_posts                  'backend/posts',
                             :controller => 'backend/posts',
                             :action => 'backend_index',
                             :conditions => { :method => :get }

map.connect                  'backend/posts',
                             :controller => 'backend/posts',
                             :action => 'create',
                             :conditions => { :method => :post }

views/backend/posts/create.html.erb:

<% form_tag do %>
<% end %>

*spec/views/backend/posts/create.html.erb_spec.rb:*

describe "backend/posts/create.html.erb" do  
  it "should render a form to create a post" do
    render "backend/posts/create.html.erb"
    response.should have_selector("form", :method => 'post', :action => b_posts_path) do |form|
      # Nothing here yet.
    end
  end
end

Here is the relevant part of the output when I run script/spec:

'backend/posts/create.html.erb should render a form to create a post' FAILED
expected following output to contain a <form method='post' action='/backend/posts'/> tag:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><form action="/backend/posts" method="post">
</form></body></html>

It would appear to me that what have_selector is looking for is exactly what the template generates, yet the example still fails. I am very much looking forward to seeing my error (because I have a feeling it is my error). Any help is much appreciated!

© Stack Overflow or respective owner

Related posts about rspec

Related posts about ruby-on-rails