आप रचना का उपयोग करते हैं, तो आप अन्य वस्तुओं जहाँ से अपनी कक्षा-अंडर-परीक्षण निर्भर करता है नकली कर सकते हैं, लेकिन जब आप विरासत का उपयोग करें, आप आधार वर्ग नकली नहीं कर सकते। (? या आप कर सकते हैं)मैं विरासत वस्तुओं को यूनिट-टेस्ट कैसे करूं?
मैं आम तौर पर prefer composition over inheritance, लेकिन कभी कभी विरासत करने की कोशिश वास्तव में इस काम के लिए सबसे अच्छा उपकरण की तरह लगता है - अच्छी तरह से, कम से कम जब तक यह इकाई परीक्षण के लिए आता है।
तो, आप विरासत का परीक्षण कैसे करते हैं? या आप इसे अवांछनीय के रूप में कचरा करते हैं और इसके बजाए संरचना का उपयोग करते हैं?
नोट: मैं ज्यादातर PHP और PHPUnit का उपयोग करें, ताकि पक्ष पर मदद सबसे की सराहना की है। लेकिन अगर अन्य भाषाओं में इस समस्या का समाधान हो तो जानना भी दिलचस्प होगा।
एक [अच्छा उदाहरण] है (http://stackoverflow.com/questions/58969/best-way-to-unit-test-a-website-with-multiple-user-types-with-phpunit#63442) [[मुआवजा द्वारा दिए गए समाधान] के लिए [http://stackoverflow.com/questions/100795/how-do-i-unit-test-inheriting-objects#116340)। परीक्षण पदानुक्रम आपके वर्ग पदानुक्रम जैसा दिखने दें। – GrGr
मुझे नहीं लगता कि सुपरक्लस का नकल करना कैसे संभव होगा। यह एक भाषा सुविधा ihmo होना होगा। आप वास्तव में परीक्षण करने की कोशिश कर रहे हैं? मेरे लिए ऐसा लगता है जैसे प्रतिबिंब आपके लिए सहायक हो सकता है? – Robse
मुझे यह भी नहीं पता कि अभिभावक वर्ग का मज़ाक उड़ाया जा सकता है। यही कारण है कि मैं पूछ रहा हूँ। लेकिन मुझे नहीं लगता कि यह असंभव है - कंप्यूटर में बहुत कम चीजें हैं। –