Module: ActiveSupport::Testing::SetupAndTeardown
- Included in:
- Test::Unit::TestCase
- Defined in:
- lib/active_support/testing/setup_and_teardown.rb
Constant Summary collapse
- PASSTHROUGH_EXCEPTIONS =
For compatibility with Ruby < 1.8.6
if defined?(Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS) Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS else [NoMemoryError, SignalException, Interrupt, SystemExit] end
Class Method Summary collapse
Instance Method Summary collapse
-
#run_with_callbacks(result) {|Test::Unit::TestCase::STARTED, name| ... } ⇒ Object
This redefinition is unfortunate but test/unit shows us no alternative.
-
#run_with_callbacks_and_mocha(result) {|Test::Unit::TestCase::STARTED, name| ... } ⇒ Object
Doubly unfortunate: mocha does the same so we have to hax their hax.
Class Method Details
.included(base) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/active_support/testing/setup_and_teardown.rb', line 12 def self.included(base) base.send :include, ActiveSupport::Callbacks base.define_callbacks :setup, :teardown begin require 'mocha' base.alias_method_chain :run, :callbacks_and_mocha rescue LoadError base.alias_method_chain :run, :callbacks end end |
Instance Method Details
#run_with_callbacks(result) {|Test::Unit::TestCase::STARTED, name| ... } ⇒ Object
This redefinition is unfortunate but test/unit shows us no alternative.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/active_support/testing/setup_and_teardown.rb', line 25 def run_with_callbacks(result) #:nodoc: return if @method_name.to_s == "default_test" yield(Test::Unit::TestCase::STARTED, name) @_result = result begin run_callbacks :setup setup __send__(@method_name) rescue Test::Unit::AssertionFailedError => e add_failure(e., e.backtrace) rescue *PASSTHROUGH_EXCEPTIONS raise rescue Exception add_error($!) ensure begin teardown run_callbacks :teardown, :enumerator => :reverse_each rescue Test::Unit::AssertionFailedError => e add_failure(e., e.backtrace) rescue *PASSTHROUGH_EXCEPTIONS raise rescue Exception add_error($!) end end result.add_run yield(Test::Unit::TestCase::FINISHED, name) end |
#run_with_callbacks_and_mocha(result) {|Test::Unit::TestCase::STARTED, name| ... } ⇒ Object
Doubly unfortunate: mocha does the same so we have to hax their hax.
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/active_support/testing/setup_and_teardown.rb', line 57 def run_with_callbacks_and_mocha(result) return if @method_name.to_s == "default_test" yield(Test::Unit::TestCase::STARTED, name) @_result = result begin mocha_setup begin run_callbacks :setup setup __send__(@method_name) mocha_verify { add_assertion } rescue Mocha::ExpectationError => e add_failure(e., e.backtrace) rescue Test::Unit::AssertionFailedError => e add_failure(e., e.backtrace) rescue StandardError, ScriptError add_error($!) ensure begin teardown run_callbacks :teardown, :enumerator => :reverse_each rescue Test::Unit::AssertionFailedError => e add_failure(e., e.backtrace) rescue StandardError, ScriptError add_error($!) end end ensure mocha_teardown end result.add_run yield(Test::Unit::TestCase::FINISHED, name) end |