62: def run(result)
63: assertion_counter = AssertionCounter.new(result)
64: yield(Test::Unit::TestCase::STARTED, name)
65: @_result = result
66: begin
67: begin
68: setup
69: __send__(@method_name)
70: mocha_verify(assertion_counter)
71: rescue Mocha::ExpectationError => e
72: add_failure(e.message, e.backtrace)
73: rescue Test::Unit::AssertionFailedError => e
74: add_failure(e.message, e.backtrace)
75: rescue Exception
76: raise if Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS.include? $!.class
77: add_error($!)
78: ensure
79: begin
80: teardown
81: rescue Test::Unit::AssertionFailedError => e
82: add_failure(e.message, e.backtrace)
83: rescue Exception
84: raise if Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS.include? $!.class
85: add_error($!)
86: end
87: end
88: ensure
89: mocha_teardown
90: end
91: result.add_run
92: yield(Test::Unit::TestCase::FINISHED, name)
93: end