12: def run(result)
13: assertion_counter = AssertionCounter.new(result)
14: yield(Test::Unit::TestCase::STARTED, name)
15: @_result = result
16: begin
17: begin
18: setup
19: __send__(@method_name)
20: mocha_verify(assertion_counter)
21: rescue Mocha::ExpectationError => e
22: add_failure(e.message, e.backtrace)
23: rescue Test::Unit::AssertionFailedError => e
24: add_failure(e.message, e.backtrace)
25: rescue Exception
26: raise if Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS.include? $!.class
27: add_error($!)
28: ensure
29: begin
30: teardown
31: rescue Test::Unit::AssertionFailedError => e
32: add_failure(e.message, e.backtrace)
33: rescue Exception
34: raise if Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS.include? $!.class
35: add_error($!)
36: end
37: end
38: ensure
39: mocha_teardown
40: end
41: result.add_run
42: yield(Test::Unit::TestCase::FINISHED, name)
43: end