[ruby-core:60732] [ruby-trunk - Feature #3219] assert now passes non-boolean result

From: nobu@...
Date: 2014-02-14 10:12:07 UTC
List: ruby-core #60732
Issue #3219 has been updated by Nobuyoshi Nakada.

Description updated

----------------------------------------
Feature #3219: assert now passes non-boolean result
https://bugs.ruby-lang.org/issues/3219#change-45154

* Author: Nobuyoshi Nakada
* Status: Assigned
* Priority: Normal
* Assignee: Shota Fukumori
* Category: 
* Target version: next minor
----------------------------------------
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




-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next