From e7208d382a3d8bae9ab13d8a380b1a2a05fd99b0 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sat, 22 Nov 2008 19:18:30 -0800 Subject: Get ActiveSupport::TestCase working with classic Test::Unit and MiniTest. Fix broken Mocha + MiniTest. Assume ruby-core applies patch #771 fixing libraries which extend Test::Unit. --- .../testing/mocha_minitest_adapter.rb | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 activesupport/lib/active_support/testing/mocha_minitest_adapter.rb (limited to 'activesupport/lib/active_support/testing/mocha_minitest_adapter.rb') diff --git a/activesupport/lib/active_support/testing/mocha_minitest_adapter.rb b/activesupport/lib/active_support/testing/mocha_minitest_adapter.rb new file mode 100644 index 0000000000..a96ce74526 --- /dev/null +++ b/activesupport/lib/active_support/testing/mocha_minitest_adapter.rb @@ -0,0 +1,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 -- cgit v1.2.3