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/