19: def self.included(base)
20: if RUBY_VERSION < '1.8.6'
21: base.class_eval do
22:
23: alias_method :run_before_mocha_test_case_adapter, :run
24:
25: def run(result)
26: assertion_counter = AssertionCounter.new(result)
27: yield(Test::Unit::TestCase::STARTED, name)
28: @_result = result
29: begin
30: begin
31: setup
32: __send__(@method_name)
33: mocha_verify(assertion_counter)
34: rescue Mocha::ExpectationError => e
35: add_failure(e.message, e.backtrace)
36: rescue Test::Unit::AssertionFailedError => e
37: add_failure(e.message, e.backtrace)
38: rescue StandardError, ScriptError
39: add_error($!)
40: ensure
41: begin
42: teardown
43: rescue Test::Unit::AssertionFailedError => e
44: add_failure(e.message, e.backtrace)
45: rescue StandardError, ScriptError
46: add_error($!)
47: end
48: end
49: ensure
50: mocha_teardown
51: end
52: result.add_run
53: yield(Test::Unit::TestCase::FINISHED, name)
54: end
55:
56: end
57: else
58: base.class_eval do
59:
60: alias_method :run_before_mocha_test_case_adapter, :run
61:
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
94:
95: end
96:
97: end
98:
99: end