Created: 2008-04-22 04:57
Updated: 2017-07-27 04:49
License: mit



BodyMatcher simplifies your view testing. Forget assert_select.

Activate it by including it in your Test::Unit::TestCase class:

class Test::Unit::TestCase
    include BodyMatcher

    self.use_transactional_fixtures = true
    self.use_instantiated_fixtures  = false

Simple assertions:

 body_matcher['#web_results'].should.match /results from the web/i
 body_matcher['#categories_dropdown'].should.include "#{topic}[#{count}]"


 request.body.should.body_match '(your name)'

Access the attributes:

 body_matcher['#name_field'].attributes['value'].should.equal '(your name)'
 body_matcher['#name_field']['value'].should.equal '(your name)'

The nice part about this is that test failures will print out only the HTML you're trying to match.

For use with test/spec/rails, which provides the 'body' method. Also requires Hpricot. Enjoy.


Change Log

06.27.2008 Modified for compatibility with test/spec 0.4.0. Removed the body alias_method and added a new body_matcher method to traverse @response.body.

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more