File: README — test-unit-capybara - test-unit

test-unit-capybara

Webサイト

説明

test-unit-capybaraはtest-unit 2用のCapybaraアダプターです。Capybaraと連携したTest::Unit::TestCaseを使うことができます。また、Capybara用の便利なアサーションも提供します。

インストール


% sudo gem install test-unit-capybara

使い方


require 'test/unit/capybara'

class MyRackApplication
  def call(env)
    html = "<html>\n<head>\n<title>Welcome! - my site</title>\n</head>\n<body>\n<h1>Welcome!</h1>\n<div class=\"header\">\n<p>No navigation.</p>\n</div>\n</body>\n</html>\n"
   [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またはそれ以降のバージョン。

(コントリビュートされたパッチなども含み、Kouhei Sutouがライセンスを変更する権利を持ちます。)

作者

  • Kouhei Sutou