給定一個父類Fruit
和它的子類Apple
和Banana
,是有可能存根方法foo
在Fruit
定義,這樣就對Apple
和Banana
任何實例方法foo
任何調用存根?是否有可能在父類中存根方法,以便所有子類實例在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)
沒有工作,它看起來像它只是存根水果的實例。有沒有簡單的方法來實現這一點,而不是爲每個子類調用存根?
發現此鏈接引發類似的問題,但它看起來還沒有得到答覆。 http://groups.google.com/group/mocha-developer/browse_thread/thread/99981af7c86dad5e
是,它爲這個簡單的例子。但是如果有許多子類,它會有點笨拙。此外它不適用於ActiveRecord模型,因爲該方法[在base.rb中重寫](http://stackoverflow.com/questions/1195531/listing-subclasses-doesnt-work-in-ruby-script-console)。實際上,我正在尋找一種爲所有控制器和模型存根的方法。 – Innerpeacer
這種方法對我很好,除了使用'c.constantize.any_instance.stubs(:foo)' – jackbot