From cbc6a104b2a9d4dd3e171c42ac5cd28d61cb11d8 Mon Sep 17 00:00:00 2001 From: akr Date: Thu, 11 Dec 2008 10:40:24 +0000 Subject: * lib/test/unit/assertions.rb: extracted from lib/test/unit.rb. lib/test/unit/testcase.rb: ditto. at asakusa.rb. [ruby-core:20014] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/test/unit.rb | 114 +------------------------------------------- lib/test/unit/assertions.rb | 110 ++++++++++++++++++++++++++++++++++++++++++ lib/test/unit/testcase.rb | 12 +++++ 3 files changed, 124 insertions(+), 112 deletions(-) create mode 100644 lib/test/unit/assertions.rb create mode 100644 lib/test/unit/testcase.rb (limited to 'lib/test') diff --git a/lib/test/unit.rb b/lib/test/unit.rb index 3ddeb51643..c42631b4be 100644 --- a/lib/test/unit.rb +++ b/lib/test/unit.rb @@ -1,7 +1,8 @@ # test/unit compatibility layer using minitest. require 'minitest/unit' -require 'pp' +require 'test/unit/assertions' +require 'test/unit/testcase' module Test module Unit @@ -58,117 +59,6 @@ module Test ARGV.replace minitest_argv end - - module Assertions - include MiniTest::Assertions - - def mu_pp(obj) - obj.pretty_inspect.chomp - end - - def assert_raise(*args, &b) - assert_raises(*args, &b) - end - - def assert_nothing_raised(*args) - if Module === args.last - msg = nil - else - msg = args.pop - end - begin - yield - rescue Exception => e - if ((args.empty? && !e.instance_of?(MiniTest::Assertion)) || - args.any? {|a| a.instance_of?(Module) ? e.is_a?(a) : e.class == a }) - msg = message(msg) { "Exception raised:\n<#{mu_pp(e)}>" } - raise MiniTest::Assertion, msg.call, e.backtrace - else - raise - end - end - nil - end - - def assert_nothing_thrown(msg=nil) - begin - yield - rescue ArgumentError => error - raise error if /\Auncaught throw (.+)\z/m !~ error.message - msg = message(msg) { "<#{$1}> was thrown when nothing was expected" } - flunk(msg) - end - assert(true, "Expected nothing to be thrown") - end - - def assert_equal(exp, act, msg = nil) - msg = message(msg) { - exp_str = mu_pp(exp) - act_str = mu_pp(act) - exp_comment = '' - act_comment = '' - if exp_str == act_str - if exp.is_a?(String) && act.is_a?(String) - exp_comment = " (#{exp.encoding})" - act_comment = " (#{act.encoding})" - elsif exp.is_a?(Time) && act.is_a?(Time) - exp_comment = " (nsec=#{exp.nsec})" - act_comment = " (nsec=#{act.nsec})" - end - elsif !Encoding.compatible?(exp_str, act_str) - if exp.is_a?(String) && act.is_a?(String) - exp_str = exp.dump - act_str = act.dump - exp_comment = " (#{exp.encoding})" - act_comment = " (#{act.encoding})" - else - exp_str = exp_str.dump - act_str = act_str.dump - end - end - "<#{exp_str}>#{exp_comment} expected but was\n<#{act_str}>#{act_comment}" - } - assert(exp == act, msg) - end - - def assert_not_nil(exp, msg=nil) - msg = message(msg) { "<#{mu_pp(exp)}> expected to not be nil" } - assert(!exp.nil?, msg) - end - - def assert_not_equal(exp, act, msg=nil) - msg = message(msg) { "<#{mu_pp(exp)}> expected to be != to\n<#{mu_pp(act)}>" } - assert(exp != act, msg) - end - - def assert_no_match(regexp, string, msg=nil) - assert_instance_of(Regexp, regexp, "The first argument to assert_no_match should be a Regexp.") - msg = message(msg) { "<#{mu_pp(regexp)}> expected to not match\n<#{mu_pp(string)}>" } - assert(regexp !~ string, msg) - end - - def assert_not_same(expected, actual, message="") - msg = message(msg) { build_message(message, < -with id expected to not be equal\\? to - -with id . -EOT - assert(!actual.equal?(expected), msg) - end - - def build_message(head, template=nil, *arguments) - template &&= template.chomp - template.gsub(/\?/) { mu_pp(arguments.shift) } - end - end - - class TestCase < MiniTest::Unit::TestCase - include Assertions - def self.test_order - :sorted - end - end end end diff --git a/lib/test/unit/assertions.rb b/lib/test/unit/assertions.rb new file mode 100644 index 0000000000..2c1f76e693 --- /dev/null +++ b/lib/test/unit/assertions.rb @@ -0,0 +1,110 @@ +require 'minitest/unit' +require 'pp' + +module Test + module Unit + module Assertions + include MiniTest::Assertions + + def mu_pp(obj) + obj.pretty_inspect.chomp + end + + def assert_raise(*args, &b) + assert_raises(*args, &b) + end + + def assert_nothing_raised(*args) + if Module === args.last + msg = nil + else + msg = args.pop + end + begin + yield + rescue Exception => e + if ((args.empty? && !e.instance_of?(MiniTest::Assertion)) || + args.any? {|a| a.instance_of?(Module) ? e.is_a?(a) : e.class == a }) + msg = message(msg) { "Exception raised:\n<#{mu_pp(e)}>" } + raise MiniTest::Assertion, msg.call, e.backtrace + else + raise + end + end + nil + end + + def assert_nothing_thrown(msg=nil) + begin + yield + rescue ArgumentError => error + raise error if /\Auncaught throw (.+)\z/m !~ error.message + msg = message(msg) { "<#{$1}> was thrown when nothing was expected" } + flunk(msg) + end + assert(true, "Expected nothing to be thrown") + end + + def assert_equal(exp, act, msg = nil) + msg = message(msg) { + exp_str = mu_pp(exp) + act_str = mu_pp(act) + exp_comment = '' + act_comment = '' + if exp_str == act_str + if exp.is_a?(String) && act.is_a?(String) + exp_comment = " (#{exp.encoding})" + act_comment = " (#{act.encoding})" + elsif exp.is_a?(Time) && act.is_a?(Time) + exp_comment = " (nsec=#{exp.nsec})" + act_comment = " (nsec=#{act.nsec})" + end + elsif !Encoding.compatible?(exp_str, act_str) + if exp.is_a?(String) && act.is_a?(String) + exp_str = exp.dump + act_str = act.dump + exp_comment = " (#{exp.encoding})" + act_comment = " (#{act.encoding})" + else + exp_str = exp_str.dump + act_str = act_str.dump + end + end + "<#{exp_str}>#{exp_comment} expected but was\n<#{act_str}>#{act_comment}" + } + assert(exp == act, msg) + end + + def assert_not_nil(exp, msg=nil) + msg = message(msg) { "<#{mu_pp(exp)}> expected to not be nil" } + assert(!exp.nil?, msg) + end + + def assert_not_equal(exp, act, msg=nil) + msg = message(msg) { "<#{mu_pp(exp)}> expected to be != to\n<#{mu_pp(act)}>" } + assert(exp != act, msg) + end + + def assert_no_match(regexp, string, msg=nil) + assert_instance_of(Regexp, regexp, "The first argument to assert_no_match should be a Regexp.") + msg = message(msg) { "<#{mu_pp(regexp)}> expected to not match\n<#{mu_pp(string)}>" } + assert(regexp !~ string, msg) + end + + def assert_not_same(expected, actual, message="") + msg = message(msg) { build_message(message, < +with id expected to not be equal\\? to + +with id . +EOT + assert(!actual.equal?(expected), msg) + end + + def build_message(head, template=nil, *arguments) + template &&= template.chomp + template.gsub(/\?/) { mu_pp(arguments.shift) } + end + end + end +end diff --git a/lib/test/unit/testcase.rb b/lib/test/unit/testcase.rb new file mode 100644 index 0000000000..89aa0f34c0 --- /dev/null +++ b/lib/test/unit/testcase.rb @@ -0,0 +1,12 @@ +require 'test/unit/assertions' + +module Test + module Unit + class TestCase < MiniTest::Unit::TestCase + include Assertions + def self.test_order + :sorted + end + end + end +end -- cgit v1.2.3