aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/testing/mocha_minitest_adapter.rb
blob: a96ce74526843792279a44f51887ef4e71704b56 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class MiniTest::Unit::TestCase
  include Mocha::Standalone

  class MochaAssertionCounter
    def initialize(runner) @runner = runner end
    def increment; @runner.assertion_count += 1 end
  end

  def run(runner)
    assertion_counter = MochaAssertionCounter.new(runner)
    result = '.'
    begin
      begin
        @passed = nil
        setup
        __send__ name
        mocha_verify(assertion_counter)
        @passed = true
      rescue Exception => e
        @passed = false
        result = runner.puke(self.class, self.name, e)
      ensure
        begin
          teardown
        rescue Exception => e
          result = runner.puke(self.class, self.name, e)
        end
      end
    ensure
      mocha_teardown
    end
    result
  end
end

module Test
  module Unit
    remove_const :TestCase

    class TestCase < MiniTest::Unit::TestCase
      include Test::Unit::Assertions
      def self.test_order; :sorted end
    end
  end
end