मैं कुछ विरासत कोड के साथ काम कर रहा हूं जिसमें कुछ System.out.print
कमांड हैं। मेरा ईकोबर्टुरा प्लगइन इस लाइन को लाल दिखाता है, इसलिए मैं उन्हें यूनिट परीक्षण करना चाहता हूं।क्या हमें यूनिट परीक्षण कंसोल आउटपुट चाहिए?
Here स्टैक ओवरफ्लो में मुझे यूनिट टेस्ट कंसोल आउटपुट का एक तरीका मिला जो मुझे बहुत दिलचस्प है।
इस तरह मैं यह कर:
private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
@Before
public void setUpStreams() {
System.setOut(new PrintStream(outContent));
}
@After
public void cleanUpStreams() {
System.setOut(null);
}
@Test
public void out() {
System.out.print("Some message from the system");
assertEquals("Some message from the system", outContent.toString());
}
अब तक तो अच्छा, परीक्षण हरी चला जाता है लेकिन जब मैं फिर से प्लगइन कोड कवरेज चलाने के लिए, मैं यह संदेश प्राप्त:
अपवाद में सूत्र "थ्रेड-0" net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesOnProjectData (TouchCollector.java:186) net.sourceforge.cobertura.coveragedata.ProjectData.saveGlobalProjectData पर (ProjectData.java पर java.lang.NullPointerException: 267) net.sourceforge.cobertura.coveragedata.SaveTimer.run (SaveTimer.java:31 पर ) java.lang.Thread.run पर (Thread.java:662)
मैं कुछ संदेह है:
- क्या यूनिट परीक्षण
System.out.print()'s
इकाई परीक्षण करने का प्रयास करना सही है? - क्या ईकोबर्टूरैन इस प्रकार के परीक्षण के साथ संगत है?
- यदि ईकोबर्टुरा इस प्रकार के परीक्षण के साथ संगत नहीं है, तो यह लाल रेखा क्यों दिखाता है?
- क्या मेरे परीक्षण में कुछ गड़बड़ है?
- मैं जुनीट 4.11 का उपयोग कर रहा हूं क्या आपको लगता है कि इसके साथ कुछ करने के लिए कुछ है?
- ईकोबर्टुरा मुझे यह त्रुटि क्यों दे रहा है?
का उल्लेख करने के लिए – sfrj
धन्यवाद। मुझे खुशी है कि मैं मदद कर सकता हूं। – phisch