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

ruby-changes:21202

From: nobu <ko1@a...>
Date: Mon, 12 Sep 2011 12:43:27 +0900 (JST)
Subject: [ruby-changes:21202] nobu:r33251 (trunk): * lib/test/unit/assertions.rb (assert_send): make arguments in

nobu	2011-09-12 12:40:49 +0900 (Mon, 12 Sep 2011)

  New Revision: 33251

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

  Log:
    * lib/test/unit/assertions.rb (assert_send): make arguments in
      the default message clearer.

  Modified files:
    trunk/ChangeLog
    trunk/lib/test/unit/assertions.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 33250)
+++ ChangeLog	(revision 33251)
@@ -1,3 +1,8 @@
+Mon Sep 12 12:40:44 2011  Nobuyoshi Nakada  <nobu@r...>
+
+	* lib/test/unit/assertions.rb (assert_send): make arguments in
+	  the default message clearer.
+
 Sun Sep 11 05:23:14 2011  Marc-Andre Lafortune  <ruby-core@m...>
 
 	* lib/matrix.rb: Deal with subclasses of Matrix [redmine #5307]
Index: lib/test/unit/assertions.rb
===================================================================
--- lib/test/unit/assertions.rb	(revision 33250)
+++ lib/test/unit/assertions.rb	(revision 33251)
@@ -253,6 +253,58 @@
         super if !caller[0].rindex(MiniTest::MINI_DIR, 0) || !obj.respond_to?(meth)
       end
 
+      # :call-seq:
+      #   assert_send( +send_array+, failure_message = nil )
+      #
+      # Passes if the method send returns a true value.
+      #
+      # +send_array+ is composed of:
+      # * A receiver
+      # * A method
+      # * Arguments to the method
+      #
+      # Example:
+      #   assert_send([[1, 2], :member?, 1]) # -> pass
+      #   assert_send([[1, 2], :member?, 4]) # -> fail
+      def assert_send send_ary, m = nil
+        recv, msg, *args = send_ary
+        m = message(m) {
+          if args.empty?
+            argsstr = ""
+          else
+            (argsstr = mu_pp(args)).sub!(/\A\[(.*)\]\z/m, '\1')
+          end
+          "Expected #{mu_pp(recv)}.#{msg}#{argsstr} to return false"
+        }
+        assert recv.__send__(msg, *args), m
+      end
+
+      # :call-seq:
+      #   assert_not_send( +send_array+, failure_message = nil )
+      #
+      # Passes if the method send doesn't return a true value.
+      #
+      # +send_array+ is composed of:
+      # * A receiver
+      # * A method
+      # * Arguments to the method
+      #
+      # Example:
+      #   assert_not_send([[1, 2], :member?, 1]) # -> fail
+      #   assert_not_send([[1, 2], :member?, 4]) # -> pass
+      def assert_not_send send_ary, m = nil
+        recv, msg, *args = send_ary
+        m = message(m) {
+          if args.empty?
+            argsstr = ""
+          else
+            (argsstr = mu_pp(args)).sub!(/\A\[(.*)\]\z/m, '\1')
+          end
+          "Expected #{mu_pp(recv)}.#{msg}#{argsstr} to return false"
+        }
+        assert !recv.__send__(msg, *args), m
+      end
+
       ms = instance_methods(true).map {|sym| sym.to_s }
       ms.grep(/\Arefute_/) do |m|
         mname = ('assert_not_' << m.to_s[/.*?_(.*)/, 1])

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

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