From a213c2ed9c84f0f64f0664e820227034d078f9f9 Mon Sep 17 00:00:00 2001 From: ryan Date: Wed, 9 May 2012 04:09:25 +0000 Subject: Imported minitest 3.0.0 (r7435) w/ fixes for rubygems. 10955 tests, 2253343 assertions, 1 failures, 1 errors, 28 skips minus drb tests on x86_64-darwin11.3.0 and reviewed by drbrain git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35601 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/minitest/metametameta.rb | 4 ++- test/minitest/test_minitest_mock.rb | 59 +++++++++++++++++++++++++++++++++++++ test/minitest/test_minitest_unit.rb | 18 ++++------- 3 files changed, 68 insertions(+), 13 deletions(-) (limited to 'test/minitest') diff --git a/test/minitest/metametameta.rb b/test/minitest/metametameta.rb index 035ee77ab4..609e551ff5 100644 --- a/test/minitest/metametameta.rb +++ b/test/minitest/metametameta.rb @@ -26,13 +26,15 @@ class MetaMetaMetaTestCase < MiniTest::Unit::TestCase output = @output.string.dup output.sub!(/Finished tests in .*/, "Finished tests in 0.00") output.sub!(/Loaded suite .*/, 'Loaded suite blah') - if /mswin|mingw/ =~ RUBY_PLATFORM + + if windows? then output.gsub!(/\[(?:[A-Za-z]:)?[^\]:]+:\d+\]/, '[FILE:LINE]') output.gsub!(/^(\s+)(?:[A-Za-z]:)?[^:]+:\d+:in/, '\1FILE:LINE:in') else output.gsub!(/\[[^\]:]+:\d+\]/, '[FILE:LINE]') output.gsub!(/^(\s+)[^:]+:\d+:in/, '\1FILE:LINE:in') end + assert_equal(expected, output) end diff --git a/test/minitest/test_minitest_mock.rb b/test/minitest/test_minitest_mock.rb index 02321e0f97..dcb140851a 100644 --- a/test/minitest/test_minitest_mock.rb +++ b/test/minitest/test_minitest_mock.rb @@ -210,3 +210,62 @@ class TestMiniTestMock < MiniTest::Unit::TestCase assert_equal exp, e.message end end + +require "test/minitest/metametameta" + +class TestMiniTestStub < MiniTest::Unit::TestCase + def setup + super + MiniTest::Unit::TestCase.reset + + @tc = MiniTest::Unit::TestCase.new 'fake tc' + @assertion_count = 1 + end + + def teardown + super + assert_equal @assertion_count, @tc._assertions + end + + def assert_stub val_or_callable + @assertion_count += 1 + + t = Time.now.to_i + + Time.stub :now, val_or_callable do + @tc.assert_equal 42, Time.now + end + + @tc.assert_operator Time.now.to_i, :>=, t + end + + def test_stub_value + assert_stub 42 + end + + def test_stub_block + assert_stub lambda { 42 } + end + + def test_stub_block_args + @assertion_count += 1 + + t = Time.now.to_i + + Time.stub :now, lambda { |n| n * 2 } do + @tc.assert_equal 42, Time.now(21) + end + + @tc.assert_operator Time.now.to_i, :>=, t + end + + def test_stub_callable + obj = Object.new + + def obj.call + 42 + end + + assert_stub obj + end +end diff --git a/test/minitest/test_minitest_unit.rb b/test/minitest/test_minitest_unit.rb index 1707810a4f..e13890f32f 100644 --- a/test/minitest/test_minitest_unit.rb +++ b/test/minitest/test_minitest_unit.rb @@ -6,7 +6,7 @@ ###################################################################### require 'pathname' -require File.expand_path('../metametameta', __FILE__) +require 'test/minitest/metametameta' module MyModule; end class AnError < StandardError; include MyModule; end @@ -706,13 +706,16 @@ class TestMiniTestUnitTestCase < MiniTest::Unit::TestCase def test_assert_block exp = ["NOTE: MiniTest::Unit::TestCase#assert_block is deprecated,", - "use assert. It will be removed on or after 2012-06-01.\n"].join " " + "use assert. It will be removed on or after 2012-06-01."].join " " - assert_output "", exp do + out, err = capture_io do @tc.assert_block do true end end + + assert_equal "", out + assert_match exp, err end def test_assert_block_triggered @@ -952,15 +955,6 @@ class TestMiniTestUnitTestCase < MiniTest::Unit::TestCase @tc.assert_match "blah", obj end - def test_assert_match_matchee_match - @assertion_count = 2 - - obj = Object.new - def obj.=~(o); true end - - @tc.assert_match "blah", obj - end - def test_assert_match_object_triggered @assertion_count = 2 -- cgit v1.2.3