1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):

assertion message must be String or Proc.  suggested by caleb
  clausen at [ruby-core:29884].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2010-04-30 15:26:34 +00:00
parent b36b3067f0
commit 11caac1663
3 changed files with 23 additions and 0 deletions

View file

@ -1,3 +1,9 @@
Sat May 1 00:26:31 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):
assertion message must be String or Proc. suggested by caleb
clausen at [ruby-core:29884].
Sat May 1 00:14:47 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* test/ruby/test_io.rb: skip false tests on Windows.

View file

@ -10,6 +10,15 @@ module Test
obj.pretty_inspect.chomp
end
def assert(test, msg = (nomsg = true; nil))
unless nomsg or msg.instance_of?(String) or msg.instance_of?(Proc) or
(bt = caller).shift.rindex(MiniTest::MINI_DIR, 0)
bt = MiniTest.filter_backtrace(bt)
raise ArgumentError, "assertion message must be String or Proc, but #{msg.class} was given.", bt
end
super
end
def assert_raise(*args, &b)
assert_raises(*args, &b)
end

View file

@ -0,0 +1,8 @@
require 'test/unit'
class TestAssertion < Test::Unit::TestCase
def test_wrong_assertion
error, line = assert_raise(ArgumentError) {assert(true, true)}, __LINE__
assert_match(/assertion message must be String or Proc, but TrueClass was given/, error.message)
assert_match(/\A#{Regexp.quote(__FILE__)}:#{line}:/, error.backtrace[0])
end
end