Biorąc pod uwagę klasę nadrzędną Fruit
jej podklasy Apple
i Banana
, możliwe jest skrótową metody foo
zdefiniowany w Fruit
, tak że wszelkie wywołania metody foo
o wszelkich wystąpień Apple
i Banana
są zgaszone?Czy możliwe jest umieszczenie metody w klasie nadrzędnej, aby wszystkie instancje podklas były zgrupowane w rspec?
class Fruit
def foo
puts "some magic in Fruit"
end
end
class Banana < Fruit
...
end
class Apple < Fruit
...
end
Fruit.any_instance.stubs(:foo)
nie działa i wygląda na to tylko odcinki o przypadkach owoców. Czy istnieje prosty sposób osiągnięcia tego innego niż wywoływanie skrótów dla każdej podklasy?
Ten link podniósł podobne pytanie, ale wygląda na to, że nie otrzymał jeszcze odpowiedzi. http://groups.google.com/group/mocha-developer/browse_thread/thread/99981af7c86dad5e
Tak, to działa na tym prostym przykładzie. Byłoby jednak trochę niezgrabne, gdyby było wiele podklas. Nie działa również w modelach ActiveRecord, ponieważ metoda jest [przesłonięta w base.rb] (http://stackoverflow.com/questions/1195531/listing-subclasses-doesnt-work-in-ruby-script-console). Właściwie szukałem sposobu na pobranie metody dla wszystkich kontrolerów i modeli. – Innerpeacer
Ta metoda działa dobrze dla mnie, z wyjątkiem użycia 'c.constantize.any_instance.stubs (: foo)' – jackbot