In einem Komponententest muss ich testen, ob Alias-Methoden, die durch alias_method definiert sind, richtig definiert wurden. Ich könnte einfach die gleichen Tests für die Aliase verwenden, die für ihre Originale verwendet werden, aber ich frage mich, ob es eine definitivere oder effizientere Lösung gibt. Gibt es zum Beispiel eine Möglichkeit, 1) den Alias einer Methode zu dereferenzieren und den Namen des Originals zurückzugeben, 2) eine Art von zugrunde liegenden Methodenidentifikator oder -adresse abzurufen und zu vergleichen oder 3) Methodendefinitionen abzurufen und zu vergleichen? Zum Beispiel:Gibt es eine elegante Möglichkeit zu testen, ob eine Instanzmethode ein Alias für eine andere ist?
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
Vorschläge?
möglich Duplikat [Ist es möglich, aliased Methoden in Ruby zu identifizieren?] (Http://stackoverflow.com/questions/3676834/is-it-possible-to -identify-aliased-methods-in-ruby) –