परीक्षण प्रश्न लिखने की कोशिश करते समय यह प्रश्न उठता है। फू फ्रेमवर्क लाइब्रेरी के भीतर एक कक्षा है जिसका मेरे पास स्रोत पहुंच नहीं है।प्रतिबिंब या अन्य माध्यमों के माध्यम से जावा अंतिम तरीकों को ओवरराइड करें?
public class Foo{
public final Object getX(){
...
}
}
मेरी अनुप्रयोगों होगा
public class Bar extends Foo{
public int process(){
Object value = getX();
...
}
}
इकाई परीक्षण का मामला अन्य निर्भरता की वजह से initalize के रूप में मैं एक फू वस्तु नहीं बना सकते में असमर्थ है। बारटेस्ट एक शून्य पॉइंटर फेंकता है क्योंकि मान शून्य है।
public class BarTest extends TestCase{
public testProcess(){
Bar bar = new Bar();
int result = bar.process();
...
}
}
वहाँ एक रास्ता मैं प्रतिबिंब एपीआई का उपयोग कर सकते गैर अंतिम करने के लिए getX() स्थापित करने के लिए है? या मुझे परीक्षण के बारे में कैसे जाना चाहिए?
यह यूनिट परीक्षण नहीं है। यूनिट परीक्षण कोड की बेहद दानेदार इकाइयों के लिए हैं। आप जो वर्णन कर रहे हैं वह एकीकरण परीक्षण या संभवतः कार्यात्मक परीक्षणों की तरह लगता है। –
जरूरी नहीं है; मैं उन विशिष्ट परिस्थितियों को नहीं जानता जिसमें वह काम कर रहे हैं (यानी अन्य वर्ग, डीबी, इत्यादि), लेकिन कुछ परीक्षण हैं जो आप कई कक्षाओं के साथ एक साथ कर सकते हैं - उदाहरण के लिए, यदि आप बाहरी पुस्तकालय का उपयोग कर रहे हैं, तो यह है यह मानने के लिए ठीक है कि यह ठीक काम कर रहा है और अपने परीक्षणों में अपने सभी क्लिक्स का उपयोग करें। – Seb
हाँ, "कुछ परीक्षण आप एक साथ कई कक्षाओं के साथ कर सकते हैं"। वे यूनिट परीक्षण नहीं हैं। अभी भी उपयोगी, और महत्वपूर्ण है, लेकिन वे ** यूनिट ** परीक्षण नहीं हैं। –