From 8378a44ff9ea2f60a92af6dc45ac87b47e279fce Mon Sep 17 00:00:00 2001 From: Jamis Buck Date: Wed, 19 Jan 2011 10:08:02 -0700 Subject: [PATCH] make TestCaseTest work for pre-1.9 rubies, too --- activesupport/test/test_case_test.rb | 71 ++++++++++++++++++---------- 1 file changed, 46 insertions(+), 25 deletions(-) diff --git a/activesupport/test/test_case_test.rb b/activesupport/test/test_case_test.rb index 7e65c63062..b6a96b2ae7 100644 --- a/activesupport/test/test_case_test.rb +++ b/activesupport/test/test_case_test.rb @@ -2,6 +2,8 @@ module ActiveSupport class TestCaseTest < ActiveSupport::TestCase + IS_MINITEST = defined?(MiniTest::Assertions) && TestCase < MiniTest::Assertions + class FakeRunner attr_reader :puked @@ -12,46 +14,65 @@ def initialize def puke(klass, name, e) @puked << [klass, name, e] end - end - if defined?(MiniTest::Assertions) && TestCase < MiniTest::Assertions - def test_callback_with_exception - tc = Class.new(TestCase) do - setup :bad_callback - def bad_callback; raise 'oh noes' end - def test_true; assert true end + unless IS_MINITEST + def add_error(e) + puke(nil, nil, e) end - test_name = 'test_true' - fr = FakeRunner.new + def add_run + end - test = tc.new test_name - test.run fr - klass, name, exception = *fr.puked.first + def add_assertion + end + def add_failure(msg, locations=nil) + end + end + end + + def test_callback_with_exception + tc = Class.new(TestCase) do + setup :bad_callback + def bad_callback; raise 'oh noes' end + def test_true; assert true end + end + + test_name = 'test_true' + fr = FakeRunner.new + + test = tc.new test_name + test.run(fr) {} + klass, name, exception = *fr.puked.first + + if IS_MINITEST assert_equal tc, klass assert_equal test_name, name - assert_equal 'oh noes', exception.message end - def test_teardown_callback_with_exception - tc = Class.new(TestCase) do - teardown :bad_callback - def bad_callback; raise 'oh noes' end - def test_true; assert true end - end + assert_match %r{oh noes}, exception.message + end + + def test_teardown_callback_with_exception + tc = Class.new(TestCase) do + teardown :bad_callback + def bad_callback; raise 'oh noes' end + def test_true; assert true end + end - test_name = 'test_true' - fr = FakeRunner.new + test_name = 'test_true' + fr = FakeRunner.new - test = tc.new test_name - test.run fr - klass, name, exception = *fr.puked.first + test = tc.new test_name + test.run(fr) {} + klass, name, exception = *fr.puked.first + if IS_MINITEST assert_equal tc, klass assert_equal test_name, name - assert_equal 'oh noes', exception.message end + + assert_match %r{oh noes}, exception.message end end end -- GitLab