Get AS TestCase off deprecated callbacks

This commit is contained in:
Joshua Peek 2009-10-12 23:03:02 -05:00
parent 4552dabba7
commit 29b280666b
2 changed files with 15 additions and 55 deletions

View File

@ -3,7 +3,9 @@ module ActiveSupport
module SetupAndTeardown
def self.included(base)
base.class_eval do
include ActiveSupport::DeprecatedCallbacks
extend ClassMethods
include ActiveSupport::Callbacks
define_callbacks :setup, :teardown
if defined?(MiniTest::Assertions) && TestCase < MiniTest::Assertions
@ -14,6 +16,16 @@ module ActiveSupport
end
end
module ClassMethods
def setup(*args, &block)
set_callback(:setup, *args, &block)
end
def teardown(*args, &block)
set_callback(:teardown, *args, &block)
end
end
module ForMiniTest
def run(runner)
result = '.'

View File

@ -95,55 +95,3 @@ end
class AlsoDoingNothingTest < ActiveSupport::TestCase
end
# Setup and teardown callbacks.
class SetupAndTeardownTest < ActiveSupport::TestCase
setup :reset_callback_record, :foo
teardown :foo, :sentinel, :foo
def test_inherited_setup_callbacks
assert_equal [:reset_callback_record, :foo], self.class.setup_callback_chain.map(&:method)
assert_equal [:foo], @called_back
assert_equal [:foo, :sentinel, :foo], self.class.teardown_callback_chain.map(&:method)
end
def setup
end
def teardown
end
protected
def reset_callback_record
@called_back = []
end
def foo
@called_back << :foo
end
def sentinel
assert_equal [:foo, :foo], @called_back
end
end
class SubclassSetupAndTeardownTest < SetupAndTeardownTest
setup :bar
teardown :bar
def test_inherited_setup_callbacks
assert_equal [:reset_callback_record, :foo, :bar], self.class.setup_callback_chain.map(&:method)
assert_equal [:foo, :bar], @called_back
assert_equal [:foo, :sentinel, :foo, :bar], self.class.teardown_callback_chain.map(&:method)
end
protected
def bar
@called_back << :bar
end
def sentinel
assert_equal [:foo, :bar, :bar, :foo], @called_back
end
end