Module: ActiveSupport::Testing::SetupAndTeardown::ForClassicTestUnit
- Defined in:
- lib/active_support/testing/setup_and_teardown.rb
Constant Summary collapse
- PASSTHROUGH_EXCEPTIONS =
For compatibility with Ruby < 1.8.6
Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS rescue [NoMemoryError, SignalException, Interrupt, SystemExit]
Instance Method Summary collapse
-
#run(result) {|Test::Unit::TestCase::STARTED, name| ... } ⇒ Object
This redefinition is unfortunate but test/unit shows us no alternative.
Instance Method Details
#run(result) {|Test::Unit::TestCase::STARTED, name| ... } ⇒ Object
This redefinition is unfortunate but test/unit shows us no alternative. Doubly unfortunate: hax to support Mocha’s hax.
44 45 46 47 48 49 50 51 52 53 54 55 56 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 |
# File 'lib/active_support/testing/setup_and_teardown.rb', line 44 def run(result) return if @method_name.to_s == "default_test" if using_mocha = respond_to?(:mocha_verify) assertion_counter_klass = if defined?(Mocha::TestCaseAdapter::AssertionCounter) Mocha::TestCaseAdapter::AssertionCounter else Mocha::Integration::TestUnit::AssertionCounter end assertion_counter = assertion_counter_klass.new(result) end yield(Test::Unit::TestCase::STARTED, name) @_result = result begin begin run_callbacks :setup setup __send__(@method_name) mocha_verify(assertion_counter) if using_mocha rescue Mocha::ExpectationError => e add_failure(e., e.backtrace) rescue Test::Unit::AssertionFailedError => e add_failure(e., e.backtrace) rescue Exception => e raise if PASSTHROUGH_EXCEPTIONS.include?(e.class) add_error(e) ensure begin teardown run_callbacks :teardown, :enumerator => :reverse_each rescue Test::Unit::AssertionFailedError => e add_failure(e., e.backtrace) rescue Exception => e raise if PASSTHROUGH_EXCEPTIONS.include?(e.class) add_error(e) end end ensure mocha_teardown if using_mocha end result.add_run yield(Test::Unit::TestCase::FINISHED, name) end |