Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 79a06225ef
Fetching contributors…

Cannot retrieve contributors at this time

97 lines (73 sloc) 2.193 kb
require 'abstract_unit'
module ActiveSupport
class TestCaseTest < ActiveSupport::TestCase
IS_MINITEST = defined?(MiniTest::Assertions) && TestCase < MiniTest::Assertions
class FakeRunner
attr_reader :puked
def initialize
@puked = []
end
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
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
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
def test_teardown_should_scrub_instance_variables
tc = Class.new(TestCase) do
def test_true; @alpha = "a"; assert_equal "a", @alpha; end
end
test_name = 'test_true'
fr = FakeRunner.new
test = tc.new test_name
test.run(fr) {}
passed_var = IS_MINITEST ? :@passed : :@test_passed
ivars = test.instance_variables.map(&:to_sym)
assert ivars.include?(passed_var), "#{passed_var} should not have been scrubbed"
assert !ivars.include?(:@alpha), "@alpha should have been scrubbed"
end
end
end
Jump to Line
Something went wrong with that request. Please try again.