test-unit-capybara is a Capybara adapter for test-unit 2. You can get Capybara integrated Test::Unit::TestCase. It also provides useful assertions for Capybara.
% sudo gem install test-unit-capybara
require 'test/unit/capybara' class MyRackApplication def call(env) html = <<-HTML <html> <head> <title>Welcome! - my site</title> </head> <body> <h1>Welcome!</h1> <div class="header"> <p>No navigation.</p> </div> </body> </html> HTML [200, {"Content-Type" => "text/html"}, [html]] end end class TestMyRackApplication < Test::Unit::TestCase include Capybara::DSL def setup Capybara.app = MyRackApplication.new end def test_title visit("/") within("h1") do assert_equal("Welcome!", text) end end def test_no_sidebar visit("/") within("body") do assert_not_find(".sidebar") end end def test_header_content visit("/") within(".header") do find("ol.navi") # This fails with the following message: # # <"ol.navi">(:css) expected to find a element in # <<div class="header"> # <p>No navigation.</p> # </div>> # # This messages shows the current context. You don't need to # entire HTML. You just see the current context moved by "within". # It helps you debug a problem without save_and_open_page. end end end
LGPLv2.1 or later.
(Kouhei Sutou has a right to change the license including contributed patches.)
- Kouhei Sutou