उदाहरण के साथ Junit Assert और AssertEquals

जूनिट एसर्ट क्या है?

Assert एक विधि है जो किसी परीक्षण मामले की पास या फेल स्थिति निर्धारित करने में उपयोगी है, assert विधियां org.junit.Assert वर्ग द्वारा प्रदान की जाती हैं जो java.lang.Object वर्ग का विस्तार करती है।

अभिकथन के विभिन्न प्रकार हैं जैसे बूलियन, नल, आइडेंटिकल आदि।

जूनिट Assert नामक एक क्लास प्रदान करता है, जो परीक्षण मामलों को लिखने और परीक्षण विफलता का पता लगाने में उपयोगी कई दावे विधियाँ प्रदान करता है

दावा विधियाँ वर्ग द्वारा प्रदान की जाती हैं org.junit.Assert जो विस्तारित होता है जावा.लैंग.ऑब्जेक्ट वर्ग.

JUnit दावा विधियाँ

बूलियन

यदि आप बूलियन स्थितियों (सत्य या असत्य) का परीक्षण करना चाहते हैं, तो आप निम्नलिखित दावा विधियों का उपयोग कर सकते हैं

  1. मुखर (स्थिति)
  2. मुखर (स्थिति)

यहां शर्त एक बूलियन मान है।

शून्य वस्तु

यदि आप किसी ऑब्जेक्ट/चर का प्रारंभिक मान जांचना चाहते हैं, तो आपके पास निम्नलिखित विधियाँ हैं:

  1. assertNull(ऑब्जेक्ट)
  2. assertNotNull(ऑब्जेक्ट)

यहाँ वस्तु है Java वस्तु जैसे assertNull(वास्तविक);

समान

यदि आप यह जांचना चाहते हैं कि क्या ऑब्जेक्ट समान हैं (अर्थात एक ही जावा ऑब्जेक्ट के दो संदर्भों की तुलना करना), या भिन्न हैं।

  1. assertSame(अपेक्षित, वास्तविक), यह true लौटाएगा यदि अपेक्षित == वास्तविक
  2. assertNotSame(अपेक्षित, वास्तविक)

बराबरी का दावा करें

यदि आप दो वस्तुओं की समानता का परीक्षण करना चाहते हैं, तो आपके पास निम्नलिखित विधियाँ हैं

  • assertEquals(अपेक्षित, वास्तविक)

यह सत्य लौटाएगा यदि: अपेक्षित.बराबर( वास्तविक ) सत्य लौटाता है.

एस्सेर्ट ऐरे बराबर है

यदि आप सरणियों की समानता का परीक्षण करना चाहते हैं, तो आपके पास नीचे दी गई निम्नलिखित विधियाँ हैं:

  • assertArrayEquals(अपेक्षित, वास्तविक)

यदि सरणियों की लंबाई समान है, तो प्रत्येक मान्य मान के लिए उपरोक्त विधि का उपयोग किया जाना चाहिए iआप इसे नीचे दिए गए तरीके से जांच सकते हैं:

  • assertEquals(अपेक्षित[i],वास्तविक[i])
  • assertArrayEquals(अपेक्षित[i],वास्तविक[i])

असफल संदेश

यदि आप कोई दावा त्रुटि फेंकना चाहते हैं, तो आपके पास है असफल() जिसके परिणामस्वरूप हमेशा असफल निर्णय ही मिलता है।

  • विफल(संदेश);

आपके पास एक अतिरिक्त के साथ अभिकथन विधि हो सकती है तार पैरामीटर को पहले पैरामीटर के रूप में इस्तेमाल करें। अगर दावा विफल हो जाता है तो यह स्ट्रिंग विफलता संदेश में जोड़ दी जाएगी। उदाहरण विफल( संदेश ) के रूप में लिखा जा सकता है

  • assertEquals( संदेश, अपेक्षित, वास्तविक)

JUnit दावा करें

तुम हो assertEquals(a,b) जो इस पर निर्भर करता है के बराबर होती है () ऑब्जेक्ट क्लास की विधि.

  • यहाँ इसका मूल्यांकन इस प्रकार किया जाएगा a.बराबर( b ).
  • यहां परीक्षण के अंतर्गत वर्ग का उपयोग उपयुक्त समानता संबंध निर्धारित करने के लिए किया जाता है।
  • यदि कोई वर्ग ओवरराइड नहीं करता है के बराबर होती है () उसकि विधि वस्तु क्लास में, इसे डिफ़ॉल्ट व्यवहार मिलेगा के बराबर होती है () विधि, अर्थात वस्तु पहचान.

If a और b आदिम हैं जैसे बाइट, int, बूलियन, आदि तो assertEquals(a,b) के लिए निम्नलिखित किया जाएगा:

a और b उनके समतुल्य रैपर ऑब्जेक्ट प्रकार में परिवर्तित कर दिया जाएगा (बाइट,पूर्णांक, बूलियन, आदि), और फिर a.बराबर( b ) मूल्यांकन किया जाएगा.

उदाहरण के लिए: नीचे दिए गए स्ट्रिंग्स पर विचार करें जिनके मान समान हैं, आइए assertTrue का उपयोग करके इसका परीक्षण करें

String obj1="Junit";
String obj2="Junit";
assertEquals(obj1,obj2);

उपरोक्त assert कथन true लौटाएगा क्योंकि obj1.equals(obj2) true लौटाता है।

फ़्लोटिंग पॉइंट अभिकथन

जब आप फ़्लोटिंग पॉइंट प्रकारों की तुलना करना चाहते हैं (जैसे डबल or नाव), आपको एक अतिरिक्त आवश्यक पैरामीटर की आवश्यकता है डेल्टा फ्लोटिंग पॉइंट तुलना करते समय राउंड-ऑफ त्रुटियों की समस्या से बचने के लिए।

इस कथन का मूल्यांकन नीचे दिया गया है:

  • Math.abs( अपेक्षित – वास्तविक ) <= डेल्टा

उदाहरण के लिए:

assertEquals( एकDoubleमूल्य, अन्यDoubleमान, 0.001 )

JUnit दावा उदाहरण

नीचे दिया गया उदाहरण दर्शाता है कि किसी शर्त को किस प्रकार पुष्ट किया जाता है JUnit तरीकों का दावा.

आइए एक सरल परीक्षण वर्ग बनाएं जिसका नाम है Junit4AssertionTest.java और एक परीक्षण धावक वर्ग टेस्टरनर.जावा.

आप कुछ चर और महत्वपूर्ण दावा कथन बनाएंगे JUnit.

इस उदाहरण में, आप TestRunner.java का उपयोग करके हमारे परीक्षण वर्ग को निष्पादित करेंगे

चरण 1) आइए, जूनिट में सभी महत्वपूर्ण एश्यर्ट स्टेटमेंट विधियों को कवर करने वाला एक क्लास बनाएं:

Junit4AssertionTest.java

package guru99.junit;		

import static org.junit.Assert.*;				
import org.junit.Test;		


public class Junit4AssertionTest {				

    @Test		
    public void testAssert(){					
        		
        //Variable declaration		
        String string1="Junit";					
        String string2="Junit";					
        String string3="test";					
        String string4="test";					
        String string5=null;					
        int variable1=1;					
        int	variable2=2;					
        int[] airethematicArrary1 = { 1, 2, 3 };					
        int[] airethematicArrary2 = { 1, 2, 3 };					
        		
        //Assert statements		
        assertEquals(string1,string2);					
        assertSame(string3, string4);					
        assertNotSame(string1, string3);					
        assertNotNull(string1);			
        assertNull(string5);			
        assertTrue(variable1<variable2);					
        assertArrayEquals(airethematicArrary1, airethematicArrary2);					
    }		
}		

चरण 2) उपरोक्त क्लास को निष्पादित करने के लिए आपको एक टेस्ट रनर क्लास बनाने की आवश्यकता है:

टेस्टरनर.जावा

package guru99.junit;		

import org.junit.runner.JUnitCore;		
import org.junit.runner.Result;		
import org.junit.runner.notification.Failure;		

public class TestRunner {				
			public static void main(String[] args) {									
      Result result = JUnitCore.runClasses(Junit4AssertionTest.class);					
			for (Failure failure : result.getFailures()) {							
         System.out.println(failure.toString());					
      }		
      System.out.println("Result=="+result.wasSuccessful());							
   }		
}      

चरण 3) आइये अपेक्षित आउटपुट का चरण दर चरण विश्लेषण करें:

सभी दावे वाले कथनों पर एक-एक करके विचार करें:

  1. assertEquals(स्ट्रिंग1,स्ट्रिंग2);

अब string1=”Junit” को string2=”Junit” से तुलना करें, ऑब्जेक्ट क्लास के equals मेथड से। java.lang.Object.equals() मेथड से assertEquals मेथड को प्रतिस्थापित करना:

string1.equals(string2)=> true लौटाता है

तो assertEquals(string1,string2) वापस आएगा <strong>उद्देश्य</strong>.

  1. assertSame(स्ट्रिंग3, स्ट्रिंग4);

“assertSame()” कार्यक्षमता यह जांचने के लिए है कि दो ऑब्जेक्ट एक ही ऑब्जेक्ट को संदर्भित करते हैं।

चूँकि string3 = "test" और string4 = "test" का अर्थ है कि string3 और string4 दोनों एक ही प्रकार के हैं, इसलिए assertSame(string3, string4) वापस आएगा <strong>उद्देश्य</strong>.

  1. assertNotSame(स्ट्रिंग1, स्ट्रिंग3);

“assertNotSame()” कार्यक्षमता यह जांचने के लिए है कि दो ऑब्जेक्ट एक ही ऑब्जेक्ट को संदर्भित नहीं करते हैं।

चूँकि string1=”Junit” और string3=”test” का अर्थ है कि string1 और string3 दोनों अलग-अलग प्रकार के हैं, इसलिए assertNotSame(string1, string3) वापस आएगा <strong>उद्देश्य</strong>.

  1. assertNotNull(स्ट्रिंग1);

“assertNotNull()” कार्यक्षमता यह जांचने के लिए है कि कोई ऑब्जेक्ट शून्य नहीं है।

चूँकि string1= “Junit” जो एक गैर-शून्य मान है इसलिए assertNotNull(string1) वापस आएगा <strong>उद्देश्य</strong>.

  1. assertNull(स्ट्रिंग5);

“assertNull()” कार्यक्षमता यह जांचने के लिए है कि कोई ऑब्जेक्ट शून्य है या नहीं।

चूँकि string5= null जो कि एक शून्य मान है इसलिए assertNull(string5) वापस आएगा <strong>उद्देश्य</strong>.

  1. assertTrue(चर1

“assertTrue()” कार्यक्षमता यह जांचने के लिए है कि कोई शर्त सत्य है या नहीं।

चूँकि variable1=1 और variable2=2 है, जो दर्शाता है कि variable1 <strong>उद्देश्य</strong>.

  1. assertArrayEquals(airethematicArrary1, airethematicArrary2);

“assertArrayEquals()” कार्यक्षमता यह जांचने के लिए है कि अपेक्षित सरणी और परिणामी सरणी बराबर हैं। सरणी का प्रकार int, long, short, char, byte या java.lang.Object हो सकता है।

चूँकि airethematicArrary1 = { 1, 2, 3 } और airethematicArrary2 = { 1, 2, 3 } जो दर्शाता है कि दोनों सरणियाँ बराबर हैं इसलिए assertArrayEquals(airethematicArrary1, airethematicArrary2) लौटाएगा <strong>उद्देश्य</strong>

चूंकि सभी सातों कथनों में यह दावा किया गया है Junit4AssertionTest.java क्लास true लौटाता है, इसलिए जब आप टेस्ट assert क्लास निष्पादित करते हैं, तो यह एक सफल परीक्षण लौटाएगा। (नीचे आउटपुट देखें)

चरण 4) Junit4AssertionTest.java पर राइट क्लिक करें और runAs-> पर क्लिक करेंJUnitआप नीचे दिए गए अनुसार आउटपुट देखेंगे:

JUnit दावा उदाहरण

उपरोक्त आउटपुट अपेक्षा के अनुरूप सफल परीक्षण परिणाम दर्शाता है।

सारांश

इस ट्यूटोरियल में, आपने द्वारा प्रदान की गई सभी महत्वपूर्ण प्रकार की अभिकथन विधियों को सीखा JUnit. साथ ही, आपने assert कथनों के उदाहरण भी देखे हैं। जो दर्शाता है कि यदि सभी assert कथन true लौटाते हैं, तो परीक्षण GUI true परिणाम लौटाएगा और यदि एकल परीक्षण विफल होता है तो यह विफल परिणाम लौटाएगा।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: