仮引数名のリスト用のテスト

使い方代わりのテストケース。

#!/usr/local/bin/ruby19

require 'test/unit'

def foo(a, b);end

class TC_ProcParams < Test::Unit::TestCase
  def test_proc
    assert_equal([], proc{}.parameters)
    assert_equal(["a", "b"], proc{|a,b|}.parameters)
    assert_nil(proc{|*arg|}.parameters)
  end

  def test_labmda
    assert_equal([], lambda{}.parameters)
    assert_equal(["a", "b"], lambda{|a,b|}.parameters)
    assert_nil(lambda{|*arg|}.parameters)
  end

  def test_lproc
    assert_equal([], Proc.new{}.parameters)
    assert_equal(["a", "b"], Proc.new{|a,b|}.parameters)
    assert_nil(Proc.new{|*arg|}.parameters)
  end

  def test_method
    assert_nil(method(:p).parameters)
    assert_equal(["a", "b"], method(:foo).parameters)
  end

  def test_umethod
    assert_nil(Kernel.instance_method(:p).parameters)
    assert_equal(["a", "b"], Object.class.instance_method(:foo).parameters)
  end
end