100% कोड कवरेज के प्रयासों में, मुझे ऐसी स्थिति में आया जहां मुझे InterruptedException
पकड़ने वाले कोड के यूनिट परीक्षण ब्लॉक की आवश्यकता है। यह सही ढंग से परीक्षण कैसे करता है? (JUnit 4 वाक्य रचना कृपया)"इंटरप्टेड एक्सेप्शन" के लिए यूनिट टेस्ट कैसे लिखें
private final LinkedBlockingQueue<ExampleMessage> m_Queue;
public void addMessage(ExampleMessage hm) {
if(hm!=null){
try {
m_Queue.put(hm);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
+1, यह सच है। 80-85 के लिए लक्ष्य रखें और आप इस तरह की सभी समस्याओं से बचेंगे और फिर भी अपना कोड बहुत पुराना रखें। – BjornS
यह काफी क्रूर समाधान है और अप्रत्याशित साइड इफेक्ट्स हो सकता है। उदाहरण के लिए, मैंने पाया कि एक परीक्षण विधि में Thread.currentThread()। Interrupt() को कॉल करना उसी वर्ग में सभी परीक्षण विधियों को प्रभावित करेगा, जिससे अन्य सभी परीक्षण विफल हो जाएंगे। मैंने यह भी पाया कि किसी भी टेस्ट क्लास में इसे जोड़ने से सोनार 0% यूनिट टेस्ट कवरेज (क्यों नहीं पता चला है) की रिपोर्ट करेगा। – RCross
हां, आपको सावधान रहना होगा कि आपने इसका उपयोग कहां किया था, यह सुनिश्चित कर लें कि इंटरप्ट स्थिति को साफ़ कर दिया जाएगा (जैसा कि यह यहां है) और यह कि आपकी सेटिंग और आपके परीक्षण की जांच के बीच स्थिति की कोई हस्तक्षेप जांच नहीं है। – erickson