2013-06-14 7 views
5

मैं एक विधि का परीक्षण कर रहा हूं जो दो ऑब्जेक्ट्स पैरामीटर के रूप में लेता है और boolean देता है। जब मैं प्रश्न में विधि पर assertTrue या assertFalse का उपयोग करता हूं तो मुझे निम्न परीक्षण विफलता मिलती है: junit.framework.AssertionFailedError: nullAssertionFailedError: बुलियन विधि पर शून्य

मुझे पता है कि मैं अमान्य पैरामीटर पास कर रहा हूं और संभवतः NPE विधि के भीतर हो रहा है लेकिन यह नहीं हो रहा है, इसके बजाय परीक्षण विफल हो रहा है।

नोट: मैं boolean का उपयोग कर रहा हूं और Boolean नहीं।

नमूना कोड:

कक्षा:

public class MyClass{ 
    public boolean foo(MyObject1 lhs, MyObject2 rhs){ 
    //doSomething 
    //return something 
    } 
} 

टेस्ट:

.... //initilization of myClass, etc. 
@Test 
public void testFoo(){ 
    assertTrue(myClass.foo(new MyObject1(), new MyObject2()); 
} 
+1

यदि आप 'foo' वापसी 'false' विधि को देखते हैं तो त्रुटि सामान्य होती है। इसका मतलब है कि यह शायद आपकी उम्मीद के रूप में एक एनपीई फेंकना चाहिए। वैसे, आप जुनीट 4 का उपयोग कर रहे हैं (एनोटेशन '@ टेस्ट' के कारण) लेकिन आप अभी भी पुराने जुनीट 3 'एसेर्ट' क्लास (पैकेज जूनिट.फ्रेमवर्क) का उपयोग करते हैं। – LaurentG

+0

मुझे लगता है कि आपको अंदर एक नलपॉइंटर नहीं मिला है, आप asserTrue के बाहर विधि को चलाकर इसका परीक्षण कर सकते हैं। मुझे परिणाम जानने दो। – Vegard

+0

'शून्य' वह संदेश है जिसे आपने 'assertTrue' विधि को नहीं दिया था। http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertTrue(boolean) –

उत्तर

9

"null" एक JUnit 3 ज़ोर (junit.framework.Assert) एक खाली संदेश पैरामीटर के साथ में संदेश के रूप में दिखाई देता है । यह जुनीट 4 (org.junit.Assert) में तय किया गया है।

उदाहरण:

JUnit 3:

assertTrue(false) रूप assertTrue("null", false)

JUnit ही स्टैक ट्रेस है 4:

assertTrue(false) रूप में एक ही स्टैक ट्रेस है

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