test-unit-capybara
Description
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.
Install
% sudo gem install test-unit-
Usage
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 ::DSL
def setup
.app = MyRackApplication.new
end
def test_title
visit("/")
within("h1") do
assert_equal("Welcome!", text)
end
end
def
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 an 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
attribute :js, true
def test_destroy_a_post
# JavaScript driver is used
visit("/")
page.accept_confirm do
click_on("Destroy", match: :first)
end
within(".alert") do
assert_equal("Post was successfully destroyed", text)
end
end
end
License
LGPLv2.1 or later.
(Kouhei Sutou has a right to change the license including contributed patches.)
Authors
- Kouhei Sutou