diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-04-22 17:35:49 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-04-22 22:26:11 +0900 |
| commit | 0debf154ee9aa4c4f9aa0190a54a810801c3d31d (patch) | |
| tree | a041baf06b77d21bbb461eb9aa202235e1d296fb /test/assert.rb | |
| parent | 49cb1490331addee130b9c38a3d05e7f17382097 (diff) | |
| download | mruby-0debf154ee9aa4c4f9aa0190a54a810801c3d31d.tar.gz mruby-0debf154ee9aa4c4f9aa0190a54a810801c3d31d.zip | |
Add `assert_predicate` and `assert_operator`
Diffstat (limited to 'test/assert.rb')
| -rw-r--r-- | test/assert.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/assert.rb b/test/assert.rb index e0fac4d90..385de49bd 100644 --- a/test/assert.rb +++ b/test/assert.rb @@ -1,3 +1,4 @@ +$undefined = Object.new $ok_test = 0 $ko_test = 0 $kill_test = 0 @@ -136,6 +137,25 @@ def _assert_include(affirmed, collection, obj, msg = nil) assert_true(ret, msg, diff) end +def assert_predicate(*args); _assert_predicate(true, *args) end +def assert_not_predicate(*args); _assert_predicate(false, *args) end +def _assert_predicate(affirmed, obj, op, msg = nil) + unless ret = obj.__send__(op) == affirmed + diff = " Expected #{obj.inspect} to #{'not ' unless affirmed}be #{op}." + end + assert_true(ret, msg, diff) +end + +def assert_operator(*args); _assert_operator(true, *args) end +def assert_not_operator(*args); _assert_operator(false, *args) end +def _assert_operator(affirmed, obj1, op, obj2 = $undefined, msg = nil) + return _assert_predicate(affirmed, obj1, op, msg) if obj2 == $undefined + unless ret = obj1.__send__(op, obj2) == affirmed + diff = " Expected #{obj1.inspect} to #{'not ' unless affirmed}be #{op} #{obj2.inspect}." + end + assert_true(ret, msg, diff) +end + ## # Fails unless +obj+ is a kind of +cls+. def assert_kind_of(cls, obj, msg = nil) |
