diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2008-11-22 19:18:30 -0800 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2008-11-22 19:22:45 -0800 |
commit | e7208d382a3d8bae9ab13d8a380b1a2a05fd99b0 (patch) | |
tree | ea69c208bfce8f360189ffd95eedf9f550e65810 /activesupport/lib/active_support/testing/mocha_minitest_adapter.rb | |
parent | c79fb32e93c7ed9d5c0f39194ee48183faf3b5c9 (diff) | |
download | rails-e7208d382a3d8bae9ab13d8a380b1a2a05fd99b0.tar.gz rails-e7208d382a3d8bae9ab13d8a380b1a2a05fd99b0.tar.bz2 rails-e7208d382a3d8bae9ab13d8a380b1a2a05fd99b0.zip |
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.
Diffstat (limited to 'activesupport/lib/active_support/testing/mocha_minitest_adapter.rb')
-rw-r--r-- | activesupport/lib/active_support/testing/mocha_minitest_adapter.rb | 45 |
1 files changed, 45 insertions, 0 deletions
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 |