Browse files

make TestCaseTest work for pre-1.9 rubies, too

  • Loading branch information...
1 parent 97d4766 commit fd19aded497eae3a0b59133ed978cf0be8013503 @jamis jamis committed Jan 19, 2011
Showing with 46 additions and 25 deletions.
  1. +46 −25 activesupport/test/test_case_test.rb
View
71 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

0 comments on commit fd19ade

Please sign in to comment.