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

ruby-changes:4943

From: ko1@a...
Date: Fri, 16 May 2008 17:08:18 +0900 (JST)
Subject: [ruby-changes:4943] nobu - Ruby:r16436 (trunk): * test/ruby/test_module.rb (assert_method_defined?): added.

nobu	2008-05-16 17:08:06 +0900 (Fri, 16 May 2008)

  New Revision: 16436

  Modified files:
    trunk/test/ruby/test_module.rb

  Log:
    * test/ruby/test_module.rb (assert_method_defined?): added.

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_module.rb?r1=16436&r2=16435&diff_format=u

Index: test/ruby/test_module.rb
===================================================================
--- test/ruby/test_module.rb	(revision 16435)
+++ test/ruby/test_module.rb	(revision 16436)
@@ -5,6 +5,22 @@
 $m0 = Module.nesting
 
 class TestModule < Test::Unit::TestCase
+  def assert_method_defined?(klass, mid, message="")
+    message = build_message(message, "#{klass}\##{mid} expected to be defined.")
+    _wrap_assertion do
+      klass.method_defined?(mid) or
+        raise Test::Unit::AssertionFailedError, message, caller(3)
+    end
+  end
+
+  def assert_method_not_defined?(klass, mid, message="")
+    message = build_message(message, "#{klass}\##{mid} expected to not be defined.")
+    _wrap_assertion do
+      klass.method_defined?(mid) and
+        raise Test::Unit::AssertionFailedError, message, caller(3)
+    end
+  end
+
   def setup
     @verbose = $VERBOSE
     $VERBOSE = nil
@@ -245,14 +261,44 @@
   end
 
   def test_method_defined?
-    assert(!User.method_defined?(:wombat))
-    assert(User.method_defined?(:user))
-    assert(User.method_defined?(:mixin))
-    assert(!User.method_defined?(:wombat))
-    assert(User.method_defined?(:user))
-    assert(User.method_defined?(:mixin))
+    assert_method_not_defined?(User, :wombat)
+    assert_method_defined?(User, :user)
+    assert_method_defined?(User, :mixin)
+    assert_method_not_defined?(User, :wombat)
+    assert_method_defined?(User, :user)
+    assert_method_defined?(User, :mixin)
   end
 
+  def module_exec_aux
+    Proc.new do
+      def dynamically_added_method_3; end
+    end
+  end
+  def module_exec_aux_2(&block)
+    User.module_exec(&block)
+  end
+
+  def test_module_exec
+    User.module_exec do
+      def dynamically_added_method_1; end
+    end
+    assert_method_defined?(User, :dynamically_added_method_1)
+
+    block = Proc.new do
+      def dynamically_added_method_2; end
+    end
+    User.module_exec(&block)
+    assert_method_defined?(User, :dynamically_added_method_2)
+
+    User.module_exec(&module_exec_aux)
+    assert_method_defined?(User, :dynamically_added_method_3)
+
+    module_exec_aux_2 do
+      def dynamically_added_method_4; end
+    end
+    assert_method_defined?(User, :dynamically_added_method_4)
+  end
+
   def test_module_eval
     User.module_eval("MODULE_EVAL = 1")
     assert_equal(1, User::MODULE_EVAL)

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

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