Plugins - Helper Me Test

StarAdd to favorites

Helper Me Test

Providing quick and easy ways to create and write tests for your Rails helpers.

Features

Assertions / Test Helper Methods

  • Tag Assertions:
    • assert_tag_in and assert_tag_not_in mirror the assert_tag method built into Rails. They work with the same option, only that they need a target string as the first parameter.
  • Selector Assertion:
    • assert_select_in works almost identically to assert_select does in Rails. It allows for a CSS selector to be matched against a HTML string target. It also accepts an equality expression and can be nested like assert_select.
  • Hpricot Assertion:
    • assert_hpricot_in, and assert_hpricot_not_in test that a given CSS or XPath expression can be found in an HTML string. See Hpricot documentation for details.

Generators

  • Helper Test Generator:
    • Usage:
      • script/generate helper_tests [SampleHelper Admin::AnotherHelper ...]
    • Creates helper tests for each helper you currently have, creating one test for each public method in the module. If you instead pass it a space separated set of helper module names you'll only generate tests for those.
    • You can also pass it an option of --skip-method-tests and it won't create tests for each of the helper methods.
  • Helper Generator:
    • Usage:
      • script/generate helper HelperName [methods ...]
    • Creates a helper based on a camelcased or underscored name, and a test file for it. It will also accept a list of method names and create methods for each of them and a test for each of the methods.

Rake Tasks

I've also provided a rake task for running the generated helper tests, rake test:helpers and changed the rake test task to run that test task in a addition to the other test tasks.

Examples

Using Tag Assertions:

def test_some_html_string_with_assert_tag_in
  html = "<div><ul id="list"><li>one</li><li>two</li></ul><p id="content">hello world</p></div>"
  assert_tag_in html, :ul, :attributes => {:id => 'list'}, :child => {:tag => 'li'}
  assert_tag_in html, :p
end

Using Selector Assertions:

def test_some_html_string_with_assert_select_in
  html = "<div><ul id="list"><li>one</li><li>two</li></ul><p id="content">hello world</p></div>"
  assert_select_in html 'ul#list' do
    assert_select_in 'li'
  end
  assert_select_in html,'p#content', 'hello world'
end

Using Hpricot Methods

def test_some_html_string_with_assert_hpricot_in
  html = "<div><ul id="list"><li>one</li><li>two</li></ul><p id="content">hello world</p></div>"
  assert_hpricot_in html, 'ul[@id="list"][li="one"]'
  assert_hpricot_in html, 'p[@id="content"]'
end

Additional Documentation

Brian Landau

http://github.com/vigetlabs/helper_me_test/

git://github.com/vigetlabs/helper_me_test.git

Rails' (MIT)

  • Currently 0.0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Testing

Tags

Comments

Add a comment

Search Plugins

Query syntax

Plugins by Category

Sponsors

Rails Kits: Get Code. Get Moving.

Have a comment?