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