Issue #3219 has been updated by fxn (Xavier Noria).
Not sure I understand this ticket.
If I write a generic predicate foo? whose return value is undocumented and irrelevant, I should be able to test it like this?
assert obj.foo?
----------------------------------------
Feature #3219: assert now passes non-boolean result
https://bugs.ruby-lang.org/issues/3219#change-26190
Author: nobu (Nobuyoshi Nakada)
Status: Assigned
Priority: Normal
Assignee: sorah (Shota Fukumori)
Category:
Target version:
=begin
Hi,
Test::Unit::Assertions#assert now passes non-boolean values
(neither true nor false).
It is not only an incompatibility against former TestUnit, also
makes wrong tests (e.g., [ruby-core:29861]) passing.
diff --git a/lib/test/unit/assertions.rb b/lib/test/unit/assertions.rb
index 821faf5..52d5201 100644
--- a/lib/test/unit/assertions.rb
+++ b/lib/test/unit/assertions.rb
@@ -10,6 +10,16 @@ module Test
obj.pretty_inspect.chomp
end
+ def assert(result, *args, &b)
+ super(result == true || result == false, "assertion result must be true or false")
+ super
+ end
+
+ def refute(result, *args, &b)
+ super(result == true || result == false, "assertion result must be true or false")
+ super
+ end
+
def assert_raise(*args, &b)
assert_raises(*args, &b)
end
--
Nobu Nakada
=end
--
http://bugs.ruby-lang.org/