在單元測試中,我需要測試是否已正確定義由alias_method定義的別名方法。我可以簡單地對用於原始文件的別名使用相同的測試,但我想知道是否有更明確或有效的解決方案。例如,是否有辦法1)取消引用方法別名並返回其原始名稱,2)獲取並比較某種底層方法標識符或地址,或者3)獲取和比較方法定義?例如:有沒有一種優雅的方式來測試一個實例方法是否是另一個實例的別名?
class MyClass
def foo
# do something
end
alias_method :bar, :foo
end
describe MyClass do
it "method bar should be an alias for method foo" do
m = MyClass.new
# ??? identity(m.bar).should == identity(m.foo) ???
end
end
建議?如果 被綁定到相同的對象和 包含相同的體
可能重複[是否有可能確定在Ruby中走樣方法?(http://stackoverflow.com/questions/3676834/is-it-possible-to -identify-aliased-methods-in-ruby) – 2010-10-06 11:43:54