2016-05-11 11 views
5

मैं लाइन और शाखा कवरेज प्राप्त करने के तरीके के लिए JUnit परीक्षण केस लिख रहा हूं। परीक्षण के तहत विधि Boolean प्रकार की एक और विधि का आह्वान करती है और मैं उस भाग को कवर करने में असमर्थ हूं क्योंकि Cobertura पर निम्न पंक्ति लाल रिपोर्ट दिखाती है।जावा में एक बूलियन रिटर्न प्रकार के साथ विधि का परीक्षण कैसे करें JUnit

if (getLoggingHandler().isGeneralDebugEnabled()) 

परीक्षण के अंतर्गत विधि:

public void logMethodEndDebug(ILoggable l, String c, String m, String msg, Object... args) { 

    if (getLoggingHandler().isGeneralDebugEnabled()) { 
     String cf = ComponentUtils.createControlFrag(l, c); 
     StringBuilder sb = new StringBuilder(cf); 
     sb.append(m + StringConstants.SPACE + LogConstants.END); 
     sb.append(StringConstants.BRACE_OPEN + String.format(msg, args) + StringConstants.BRACE_CLOSE); 
     getLoggingHandler().handleGeneralDebug(sb.toString()); 
    } 

} 

JUnit परीक्षण:

@Test 
public void testLogMethodStartDebug() throws Exception { 
    String var1 = "var1"; 
    String var2 = "var2"; 
    String var3 = "var3"; 
    Object[] object = new Object[] {"var4"}; 

    BaseComponent baseComponent = new BaseComponent(); 
    baseComponent.setLoggingHandler(new TestLoggingHandler()); 

    ILoggable loggable = new ServiceContext(); 

    baseComponent.logMethodEndDebug(loggable, var1, var2, var3, object); 

    assertTrue(baseComponent.getLoggingHandler().isGeneralDebugEnabled()); 
} 

इस getLoggingHandler().isGeneralDebugEnabled() कवर करने के लिए कोई तरीका है?

धन्यवाद,

उत्तर

3

आप एक नकली को परिभाषित करने और बाद में सही मायने वापस जाने के लिए मूल्य के लिए मजबूर जब getLoggingHandler().isGeneralDebugEnabled()

कहा जाता है यहाँ कि कोड में दिखाई देंगे है कर सकते हैं:

@Mock 
private TestLoggingHandler mockLoggingHandler; 

... 

@Test 
public void testLogMethodStartDebug() throws Exception { 
    String var1 = "var1"; 
    String var2 = "var2"; 
    String var3 = "var3"; 
    Object[] object = new Object[] {"var4"}; 

    when(mockLoggingHandler.isGeneralDebugEnabled()).thenReturn(true); 

    BaseComponent baseComponent = new BaseComponent(); 
    baseComponent.setLoggingHandler(mockLoggingHandler); 

    ILoggable loggable = new ServiceContext(); 

    baseComponent.logMethodEndDebug(loggable, var1, var2, var3, object); 

    assertTrue(baseComponent.getLoggingHandler().isGeneralDebugEnabled()); 
} 

वैकल्पिक रूप से, यदि generalDebugEnabled के लिए सेटटर उपलब्ध है तो आप कुछ ऐसा कर सकते हैं:

@Test 
public void testLogMethodStartDebug() throws Exception { 
    String var1 = "var1"; 
    String var2 = "var2"; 
    String var3 = "var3"; 
    Object[] object = new Object[] {"var4"}; 

    BaseComponent baseComponent = new BaseComponent(); 
    baseComponent.setLoggingHandler(new TestLoggingHandler()); 
    baseComponent.getLoggingHandler().setGeneralDebugEnabled(true); 

    ILoggable loggable = new ServiceContext(); 

    baseComponent.logMethodEndDebug(loggable, var1, var2, var3, object); 

    assertTrue(baseComponent.getLoggingHandler().isGeneralDebugEnabled()); 
} 
+1

आप भयानक ब्लेक हैं। मॉकिटो ने मेरी मदद की और अब यह कवर किया गया है। बहुत बहुत धन्यवाद। –

संबंधित मुद्दे