From dc4d23f2d736a81be36edb0abf42774634741bf3 Mon Sep 17 00:00:00 2001 From: Marcel Molina Date: Sat, 26 May 2007 17:25:19 +0000 Subject: Make assert_select's failure messages clearer about what failed. #7779 [dchelimsky] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6860 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/test/controller/assert_select_test.rb | 43 ++++++++++++++++++------ 1 file changed, 33 insertions(+), 10 deletions(-) (limited to 'actionpack/test/controller') diff --git a/actionpack/test/controller/assert_select_test.rb b/actionpack/test/controller/assert_select_test.rb index f3b525ab92..36075a0871 100644 --- a/actionpack/test/controller/assert_select_test.rb +++ b/actionpack/test/controller/assert_select_test.rb @@ -73,7 +73,12 @@ class AssertSelectTest < Test::Unit::TestCase def teardown ActionMailer::Base.deliveries.clear end - + + def assert_failure(message, &block) + e = assert_raises(AssertionFailedError, &block) + assert_match(message, e.message) if Regexp === message + assert_equal(message, e.message) if String === message + end # # Test assert select. @@ -82,8 +87,8 @@ class AssertSelectTest < Test::Unit::TestCase def test_assert_select render_html %Q{
} assert_select "div", 2 - assert_raises(AssertionFailedError) { assert_select "div", 3 } - assert_raises(AssertionFailedError){ assert_select "p" } + assert_failure(/Expected at least 3 elements matching \"div\", found 2/) { assert_select "div", 3 } + assert_failure(/Expected at least 1 element matching \"p\", found 0/) { assert_select "p" } end @@ -131,22 +136,34 @@ class AssertSelectTest < Test::Unit::TestCase end - def test_equality_of_instances + def test_counts render_html %Q{
foo
foo
} assert_nothing_raised { assert_select "div", 2 } - assert_raises(AssertionFailedError) { assert_select "div", 3 } + assert_failure(/Expected at least 3 elements matching \"div\", found 2/) do + assert_select "div", 3 + end assert_nothing_raised { assert_select "div", 1..2 } - assert_raises(AssertionFailedError) { assert_select "div", 3..4 } + assert_failure(/Expected between 3 and 4 elements matching \"div\", found 2/) do + assert_select "div", 3..4 + end assert_nothing_raised { assert_select "div", :count=>2 } - assert_raises(AssertionFailedError) { assert_select "div", :count=>3 } + assert_failure(/Expected at least 3 elements matching \"div\", found 2/) do + assert_select "div", :count=>3 + end assert_nothing_raised { assert_select "div", :minimum=>1 } assert_nothing_raised { assert_select "div", :minimum=>2 } - assert_raises(AssertionFailedError) { assert_select "div", :minimum=>3 } + assert_failure(/Expected at least 3 elements matching \"div\", found 2/) do + assert_select "div", :minimum=>3 + end assert_nothing_raised { assert_select "div", :maximum=>2 } assert_nothing_raised { assert_select "div", :maximum=>3 } - assert_raises(AssertionFailedError) { assert_select "div", :maximum=>1 } + assert_failure(/Expected at most 1 element matching \"div\", found 2/) do + assert_select "div", :maximum=>1 + end assert_nothing_raised { assert_select "div", :minimum=>1, :maximum=>2 } - assert_raises(AssertionFailedError) { assert_select "div", :minimum=>3, :maximum=>4 } + assert_failure(/Expected between 3 and 4 elements matching \"div\", found 2/) do + assert_select "div", :minimum=>3, :maximum=>4 + end end @@ -183,6 +200,12 @@ class AssertSelectTest < Test::Unit::TestCase assert_select "#3", false end end + + assert_failure(/Expected at least 1 element matching \"#4\", found 0\./) do + assert_select "div" do + assert_select "#4" + end + end end -- cgit v1.2.3