diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-12-04 17:49:39 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-12-04 17:49:39 +0000 |
commit | 01d06638b96eefdb5f6bd019289f1e479d3c5723 (patch) | |
tree | ade4b7aff3ab91ab2c1ad1e43ce95873955dde1c /lib/test | |
parent | e78a9cdcdb05a9f196b4c76c119626e519946888 (diff) | |
download | ruby-01d06638b96eefdb5f6bd019289f1e479d3c5723.tar.gz |
* lib/test/unit/assertions.rb (Test::Unit::Assertions::assert_raises):
allow multiple exception list. [ruby-core:01884]
* lib/test/unit/assertions.rb (Test::Unit::Assertions::assert_nothing_raised):
check whether arguments are subclass of Exception.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/test')
-rw-r--r-- | lib/test/unit/assertions.rb | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/lib/test/unit/assertions.rb b/lib/test/unit/assertions.rb index 3c2f7b98c0..02126badca 100644 --- a/lib/test/unit/assertions.rb +++ b/lib/test/unit/assertions.rb @@ -58,23 +58,29 @@ EOT # Passes if block raises exception. public - def assert_raises(expected_exception_klass, message="") + def assert_raises(*args) _wrap_assertion do - assert_instance_of(Class, expected_exception_klass, "Should expect a class of exception") + if Class === args.last and Exception >= args.last + message = "" + else + message = args.pop + end + args.each do |klass| + assert(Exception >= klass, "Should expect a class of exception") + end + expected = args.size == 1 ? args.first : args actual_exception = nil - full_message = build_message(message, "<?> exception expected but none was thrown.", expected_exception_klass) + full_message = build_message(message, "<?> exception expected but none was thrown.", expected) assert_block(full_message) do - thrown = false begin yield - rescue Exception => thrown_exception - actual_exception = thrown_exception - thrown = true + rescue Exception => actual_exception + break end - thrown + false end - full_message = build_message(message, "<?> exception expected but was\n?", expected_exception_klass, actual_exception) - assert_block(full_message) { expected_exception_klass == actual_exception.class } + full_message = build_message(message, "<?> exception expected but was\n?", expected, actual_exception) + assert_block(full_message) { args.include?(actual_exception.class) } actual_exception end end @@ -176,10 +182,14 @@ EOT public def assert_nothing_raised(*args) _wrap_assertion do - message = "" - if (!args[-1].instance_of?(Class)) + if Class === args.last and Exception >= args.last + message = "" + else message = args.pop end + args.each do |klass| + assert(Exception >= klass, "Should expect a class of exception") + end begin yield rescue Exception => e |