Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Get AS TestCase off deprecated callbacks

  • Loading branch information...
commit 29b280666b6a8216a46b8349fa76c85f5b5dcc55 1 parent 4552dab
@josh josh authored
View
14 activesupport/lib/active_support/testing/setup_and_teardown.rb
@@ -3,7 +3,9 @@ module Testing
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 @@ def self.included(base)
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
56 activesupport/test/test_test.rb
@@ -4,7 +4,7 @@
class AssertDifferenceTest < ActiveSupport::TestCase
def setup
@object = Class.new do
- attr_accessor :num
+ attr_accessor :num
def increment
self.num += 1
end
@@ -12,7 +12,7 @@ def increment
def decrement
self.num -= 1
end
- end.new
+ end.new
@object.num = 0
end
@@ -95,55 +95,3 @@ class NotTestingThingsTest < Test::Unit::TestCase
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

1 comment on commit 29b2806

@rubys

This commit causes functional tests to fail. Specifically, if you generate scaffolding for a product, any reference to the fixture for products, e.g. products(:one), will produce the following

NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]
Please sign in to comment.
Something went wrong with that request. Please try again.