summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorAkira Yumiyama <[email protected]>2013-02-21 23:42:15 +0900
committerAkira Yumiyama <[email protected]>2013-02-22 13:16:47 +0900
commitf8bdc10cb153bbb55f49596d9c6b67a781cc8c14 (patch)
tree8ea6c0b56730de63d1d0c8e0be784cf42105fc33 /test
parent59cf4bca15a73222346bb16ad67a310c43537688 (diff)
downloadmruby-f8bdc10cb153bbb55f49596d9c6b67a781cc8c14.tar.gz
mruby-f8bdc10cb153bbb55f49596d9c6b67a781cc8c14.zip
add assert_{includes,instance_of,kind_of,raises} methods.
Diffstat (limited to 'test')
-rw-r--r--test/assert.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/assert.rb b/test/assert.rb
index 9f3231cd4..38bdfab20 100644
--- a/test/assert.rb
+++ b/test/assert.rb
@@ -79,6 +79,49 @@ def assert_nil(obj, msg = nil)
assert_true(obj.nil?, msg, diff)
end
+def assert_includes(collection, obj, msg = nil)
+ msg = "Expected #{collection.inspect} to include #{obj.inspect}" unless msg
+ diff = " Collection: #{collection.inspect}\n" +
+ " Object: #{obj.inspect}"
+ assert_true(collection.include?(obj), msg, diff)
+end
+
+def assert_instance_of(klass, obj, msg = nil)
+ msg = "Expected #{obj.inspect} to be an instance of #{klass}, not #{obj.class}" unless msg
+ assert_true(obj.instance_of?(klass), msg)
+end
+
+def assert_kind_of(klass, obj, msg = nil)
+ msg = "Expected #{obj.inspect} to be an kind of #{klass}, not #{obj.class}" unless msg
+ assert_true(obj.kind_of?(klass), msg)
+end
+
+def assert_raises(*exp)
+ if $mrbtest_assert
+ $mrbtest_assert_idx += 1
+ msg = exp.last.class == String ? exp.pop : nil
+ msg = msg.to_s + " : " if msg
+ should_raise = false
+ begin
+ yield
+ should_raise = true
+ rescue Exception => e
+ msg = "#{msg}#{exp.inspect} exception expected, not"
+ diff = " Class: <#{e.class}>\n" +
+ " Message: #{e.message}"
+ if exp.any?{|ex| ex.instance_of?(Module) ? e.kind_of?(ex) : ex == e.class }
+ $mrbtest_assert.push([$mrbtest_assert_idx, msg, diff])
+ end
+ end
+
+ exp = exp.first if exp.first
+ if should_raise
+ msg = "#{msg}#{exp.inspect} expected but nothing was raised."
+ $mrbtest_assert.push([$mrbtest_assert_idx, msg, nil])
+ end
+ end
+end
+
##
# Report the test result and print all assertions
# which were reported broken.