response.body.should be_html_with{
     form :action => '/users' do
       fieldset do
         legend 'Personal Information'
         label 'First name'
         input :type => 'text', :name => 'user[first_name]'
       end
     end
   }

Has anyone tried this? is it useful?

That assertion sucks! The actual sample HTML sez:

  <fieldset>
    <legend>Personal Information</legend>
    <ol>
      <li id="control_user_first_name">
        <label for="user_first_name">First name</label>
        <input type="text" name="user[first_name]" id="user_first_name" />
      </li>
    </ol>
  </fieldset>

The <legend> and <label> live in different containers, so they are not peers of each other. But the assertion specifies they are!

I think the assertion should fault until you specify at least this:

    response.body.should be_html_with{
      form :action => '/users' do
        fieldset do
          legend 'Personal Information'
          li do
            label 'First name'
            input :type => 'text', :name => 'user[first_name]'
          end
        end
      end
    }

Notice we have some conflicting requirements:

 - you can skip any tag
 - the reference should "look like" the sample (except it's in Ruby)

But you should not be able to skip a tag if its absence makes the reference "look different" from the sample. Hence, the test should require at least one of the <ol><li> tags that separate the two contexts...

(BTW the common verbiage for chemical tests of analytes here is "sample" for the substance submitted for analysis, and "reference" for the known sample used to calibrate the test.)

--
  Phlip

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to