summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--lib/test/unit.rb114
-rw-r--r--lib/test/unit/assertions.rb110
-rw-r--r--lib/test/unit/testcase.rb12
4 files changed, 130 insertions, 112 deletions
diff --git a/ChangeLog b/ChangeLog
index 1133cf758d..57f27b78ce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Thu Dec 11 19:31:45 2008 Tanaka Akira <akr@fsij.org>
+
+ * lib/test/unit/assertions.rb: extracted from lib/test/unit.rb.
+ lib/test/unit/testcase.rb: ditto.
+ at asakusa.rb. [ruby-core:20014]
+
Thu Dec 11 19:23:09 2008 Tanaka Akira <akr@fsij.org>
* test/ruby/test_io.rb (test_dup_many): extracted from test_dup.
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, <<EOT, expected, expected.__id__, actual, actual.__id__) }
-<?>
-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, <<EOT, expected, expected.__id__, actual, actual.__id__) }
+<?>
+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