On Jun 13, 7:22 pm, daze <dmonopol...@gmail.com> wrote: > Thank you. But then what should be the work around for this with > Capybara? I was leaning toward using capybara... > > Actually, do you recommend webrat over capybara? I just want one with > good documentation and stick with one for the sake of getting used to > the syntax. >
Cucumber has dropped Webrat in favour of Capybara. So, if you are likely to use Cucumber for integration testing, alongside RSpec for the unit tests, then I would choose Capybara, otherwise you will be stuck with the old cuke gem that uses Webrat. There were also some issues with Webrat (details of which I can't recall right now, possibly to do with Devise) but they went away when I switched to Capybara a few months back. Also, the switch was painless. So, FWIW, I would recommend Capybara. Regards Paul > Now... One last thing. I notice that when I try webrat, has_content? > no longer works. > I'm guessing has_content? is specific to Capybara... is "should > contain" the equivalent in webrat? > > Thanks again. > > On Jun 13, 11:02 am, David Chelimsky <dchelim...@gmail.com> wrote: > > > > > On Jun 13, 8:36 am, daze <dmonopol...@gmail.com> wrote: > > > > I'm going through The RSpec Book, and (specifically around page 333) I > > > encountered a problem. Basically, whenever I use "should > > > have_selector" in a nested form, it silently passes when it SHOULD > > > fail. > > > > I've been copying the code exactly as from the book. Now, there is > > > one major difference - I'm using Capybara while the book is using > > > Webrat. Why? I've had bigger problems with Webrat. In fact, when I > > > switch to Webrat by putting it in the Gemfile, I get this unidentified > > > method error in which has_selector isn't recognized (which is doubly > > > odd because this happens where I call have_selector...) > > > > Anyway, here's the code: > > > > -------new.html.erb_spec.rb------- > > > > require 'spec_helper' > > > > describe "messages/new.html.erb" do > > > > let(:message) do > > > mock_model("Message").as_new_record.as_null_object > > > end > > > > before do > > > assign :message, message > > > end > > > > it "renders a form to create a message" do > > > render > > > rendered.should have_selector("form", > > > :method => "post", > > > :action => messages_path > > > ) do |form| > > > form.should have_selector("input", :type => "submit") # this > > > should be failing right now!!! > > > end > > > end > > > > # this should be failing right now!!! > > > it "renders a text field for the message title" do > > > message.stub(:title => "the title") > > > render > > > rendered.should have_selector("form") do |form| > > > form.should have_selector("input", > > > :type => "submit", > > > :name => "message[title]", > > > :value => "the title" > > > ) > > > end > > > end > > > > # this should be failing right now!!! > > > it "renders a text area for the message text" do > > > message.stub(:text => "the message") > > > render > > > rendered.should have_selector("form") do |form| > > > form.should have_selector("textarea", > > > :name => "message[text]", > > > :content => "the message" > > > ) > > > end > > > end > > > end > > > > -----new.html.erb------ > > > > <%= form_for @message do |f| %> > > > > # nothing is in here, so those nested "should have_selector" > > > statements should fail > > > > <% end %> > > > > Thanks in advance! > > > The examples in the book use webrat, which has a has_selector matcher > > that supports nesting. The capybara have_selector matcher does not > > support nesting (yet). You don't get any feedback because Ruby lets > > you pass a block to any method, and leaves it to the method to handle > > it or ignore it. In this case it's being ignored. > > > HTH, > > David- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.