    # 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.message, e.backtrace)
                rescue Test::Unit::AssertionFailedError => e
                  add_failure(e.message, 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.message, 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