dado una clase padre Fruit
y sus subclases y Apple
Banana
, es posible el código auxiliar del método definido en foo
Fruit
, de manera que se apagó cualquier llamada a método foo
en cualquier caso de Apple
y Banana
?¿Es posible insertar un método en una clase principal para que todas las instancias de subclase se anulen en 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)
no funcionaba y que parece que sólo los talones para las instancias de la fruta. ¿Hay una manera simple de lograr esto que no sea el talón de llamadas para cada subclase?
Encontré este enlace que plantea una pregunta similar pero parece que todavía no se ha respondido. http://groups.google.com/group/mocha-developer/browse_thread/thread/99981af7c86dad5e
Sí, funciona para este ejemplo sencillo. Pero sería un poco torpe si hay muchas subclases. Tampoco funciona en los modelos de ActiveRecord, porque el método está [anulado en base.rb] (http://stackoverflow.com/questions/1195531/listing-subclasses-doesnt-work-in-ruby-script-console). En realidad estaba buscando una forma de un método para todos los controladores y modelos. – Innerpeacer
Este método funcionó bien para mí, excepto el uso de 'c.constantize.any_instance.stubs (: foo)' – jackbot