1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

make TestCaseTest work for pre-1.9 rubies, too

This commit is contained in:
Jamis Buck 2011-01-19 10:08:02 -07:00
parent a282301a77
commit 7938039548

View file

@ -2,6 +2,8 @@ require 'abstract_unit'
module ActiveSupport
class TestCaseTest < ActiveSupport::TestCase
IS_MINITEST = defined?(MiniTest::Assertions) && TestCase < MiniTest::Assertions
class FakeRunner
attr_reader :puked
@ -12,46 +14,65 @@ module ActiveSupport
def puke(klass, name, e)
@puked << [klass, name, e]
end
unless IS_MINITEST
def add_error(e)
puke(nil, nil, e)
end
def add_run
end
def add_assertion
end
def add_failure(msg, locations=nil)
end
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
end
test_name = 'test_true'
fr = FakeRunner.new
test = tc.new test_name
test.run fr
klass, name, exception = *fr.puked.first
assert_equal tc, klass
assert_equal test_name, name
assert_equal 'oh noes', exception.message
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
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
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 = 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
end
assert_match %r{oh noes}, exception.message
end
end
end