summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-09-17 06:53:21 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-09-17 06:53:21 +0000
commit91d28c4ffb253fe64514a543ebb17e9dbeb19374 (patch)
tree281307eb721f559c3335c67d224244fd06661f3a
parent246ff7cb68aedfa2847395287a561d05a898fafe (diff)
assertions.rb: assert_throw
* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert_throw): assertion for throw. MiniTest::Assertions#assert_throws discards the cautht value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--lib/test/unit/assertions.rb19
2 files changed, 24 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 57328b05aa..b687bf4882 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,8 @@
-Tue Sep 17 15:52:32 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Sep 17 15:53:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert_throw):
+ assertion for throw. MiniTest::Assertions#assert_throws discards
+ the cautht value.
* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert_nothing_thrown):
returns the result of the given block.
diff --git a/lib/test/unit/assertions.rb b/lib/test/unit/assertions.rb
index 0c919394ab..29b12f7ca4 100644
--- a/lib/test/unit/assertions.rb
+++ b/lib/test/unit/assertions.rb
@@ -170,6 +170,25 @@ module Test
end
# :call-seq:
+ # assert_throw( tag, failure_message = nil, &block )
+ #
+ #Fails unless the given block throws +tag+, returns the caught
+ #value otherwise.
+ #
+ #An optional failure message may be provided as the final argument.
+ #
+ # tag = Object.new
+ # assert_throw(tag, "#{tag} was not thrown!") do
+ # throw tag
+ # end
+ def assert_throw(tag, msg = nil)
+ catch(tag) do
+ yield(tag)
+ assert(false, message(msg) {"Expected #{mu_pp(tag)} to have been thrown"})
+ end
+ end
+
+ # :call-seq:
# assert_equal( expected, actual, failure_message = nil )
#
#Tests if +expected+ is equal to +actual+.