mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* 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
This commit is contained in:
parent
240378856b
commit
cbc6a104b2
4 changed files with 130 additions and 112 deletions
|
@ -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.
|
||||
|
|
114
lib/test/unit.rb
114
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
|
||||
|
||||
|
|
110
lib/test/unit/assertions.rb
Normal file
110
lib/test/unit/assertions.rb
Normal file
|
@ -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
|
12
lib/test/unit/testcase.rb
Normal file
12
lib/test/unit/testcase.rb
Normal file
|
@ -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
|
Loading…
Add table
Reference in a new issue