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/