एक माता पिता के वर्ग Fruit
और उसके उपवर्गों Apple
और Banana
को देखते हुए यह, विधि foo
Fruit
में परिभाषित ठूंठ ताकि Apple
और Banana
से किसी उदाहरण पर विधि foo
के लिए किसी भी कॉल टोंटदार कर रहे हैं हो सकता है?क्या माता-पिता वर्ग में एक विधि को स्टब करना संभव है ताकि सभी सबक्लास उदाहरण rspec में stubbed हैं?
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