[前][次][番号順一覧][スレッド一覧]

ruby-changes:15651

From: nobu <ko1@a...>
Date: Sat, 1 May 2010 00:26:50 +0900 (JST)
Subject: [ruby-changes:15651] Ruby:r27568 (trunk): * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):

nobu	2010-05-01 00:26:34 +0900 (Sat, 01 May 2010)

  New Revision: 27568

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27568

  Log:
    * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):
      assertion message must be String or Proc.  suggested by caleb
      clausen at [ruby-core:29884].

  Added directories:
    trunk/test/testunit/
  Added files:
    trunk/test/testunit/test_assertion.rb
  Modified files:
    trunk/ChangeLog
    trunk/lib/test/unit/assertions.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 27567)
+++ ChangeLog	(revision 27568)
@@ -1,3 +1,9 @@
+Sat May  1 00:26:31 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):
+	  assertion message must be String or Proc.  suggested by caleb
+	  clausen at [ruby-core:29884].
+
 Sat May  1 00:14:47 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* test/ruby/test_io.rb: skip false tests on Windows.
Index: lib/test/unit/assertions.rb
===================================================================
--- lib/test/unit/assertions.rb	(revision 27567)
+++ lib/test/unit/assertions.rb	(revision 27568)
@@ -10,6 +10,15 @@
         obj.pretty_inspect.chomp
       end
 
+      def assert(test, msg = (nomsg = true; nil))
+        unless nomsg or msg.instance_of?(String) or msg.instance_of?(Proc) or
+            (bt = caller).shift.rindex(MiniTest::MINI_DIR, 0)
+          bt = MiniTest.filter_backtrace(bt)
+          raise ArgumentError, "assertion message must be String or Proc, but #{msg.class} was given.", bt
+        end
+        super
+      end
+
       def assert_raise(*args, &b)
         assert_raises(*args, &b)
       end
Index: test/testunit/test_assertion.rb
===================================================================
--- test/testunit/test_assertion.rb	(revision 0)
+++ test/testunit/test_assertion.rb	(revision 27568)
@@ -0,0 +1,8 @@
+require 'test/unit'
+class TestAssertion < Test::Unit::TestCase
+  def test_wrong_assertion
+    error, line = assert_raise(ArgumentError) {assert(true, true)}, __LINE__
+    assert_match(/assertion message must be String or Proc, but TrueClass was given/, error.message)
+    assert_match(/\A#{Regexp.quote(__FILE__)}:#{line}:/, error.backtrace[0])
+  end
+end

Property changes on: test/testunit/test_assertion.rb
___________________________________________________________________
Name: svn:eol-style
   + LF


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]