जावा में परीक्षण: फ्रेमवर्क और उपकरण (JUnit, TestNG, Mockito)

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

जावा में परीक्षण: फ्रेमवर्क और उपकरणों का अवलोकन



गुणवत्तापूर्ण परीक्षण — जावा विकास का एक अनिवार्य हिस्सा है। आधुनिक फ्रेमवर्क कोड की जाँच को स्वचालित करने, प्रारंभिक चरणों में त्रुटियों का पता लगाने और एप्लिकेशन की स्थिरता सुनिश्चित करने की अनुमति देते हैं। इस लेख में, हम जावा में यूनिट-परीक्षण, mocking और इंटीग्रेशन परीक्षण के लिए प्रमुख उपकरणों पर विचार करेंगे, साथ ही उनके उपयोग के व्यावहारिक उदाहरण भी प्रस्तुत करेंगे।



1. JUnit 5 — यूनिट-परीक्षण का मानक



JUnit 5 (Jupiter) — जावा में मॉड्यूलर परीक्षण के लिए सबसे लोकप्रिय फ्रेमवर्क है। यह परीक्षण विधियों को परिभाषित करने, जीवनचक्र प्रबंधन और पैरामीटरीकरण के लिए एनोटेशन प्रदान करता है।



JUnit 5 के मुख्य एनोटेशन:

  • @Test — परीक्षण विधि को दर्शाता है
  • @BeforeEach / @AfterEach — प्रत्येक परीक्षण से पहले/बाद में निष्पादित होते हैं
  • @BeforeAll / @AfterAll — पूरी कक्षा के लिए एक बार निष्पादित होते हैं
  • @ParameterizedTest — विभिन्न इनपुट डेटा वाले परीक्षणों के लिए


सरल परीक्षण का उदाहरण:

import org.junit.jupiter.api.Test;import static org.junit.jupiter.api.Assertions.*;

public class CalculatorTest {

@Test void testAddition() { Calculator calc = new Calculator(); assertEquals(5, calc.add(2, 3)); }

@Test void testDivisionByZero() { Calculator calc = new Calculator(); assertThrows(ArithmeticException.class, () -> calc.divide(10, 0)); }}


2. TestNG — विस्तारित क्षमताओं वाला विकल्प



TestNG (Test Next Generation) — एक और शक्तिशाली फ्रेमवर्क है, जो JUnit से प्रेरित है, लेकिन अतिरिक्त सुविधाएँ प्रदान करता है: परीक्षणों का समूहीकरण, आश्रित परीक्षण, समानांतर निष्पादन और XML के माध्यम से लचीली कॉन्फ़िगरेशन।



TestNG की विशिष्ट विशेषताएँ:

  • @Test(groups = {"smoke"}) — परीक्षणों का समूहीकरण
  • @DataProvider — परीक्षणों में डेटा स्थानांतरित करना
  • @Test(dependsOnMethods = {"methodA"}) — परीक्षणों के बीच निर्भरताएँ


DataProvider के साथ उदाहरण:

import org.testng.annotations.DataProvider;import org.testng.annotations.Test;import static org.testng.Assert.assertEquals;

public class DataDrivenTest {

@DataProvider(name = "testData") public Object[][] createData() { return new Object[][] { { 1, 2, 3 }, { 5, -3, 2 }, { 0, 0, 0 } }; }

@Test(dataProvider = "testData") public void testAdd(int a, int b, int expected) { Calculator calc = new Calculator(); assertEquals(calc.add(a, b), expected); }}


3. Mockito — स्टब्स (mocks) का निर्माण



Mockito — जावा में mock-ऑब्जेक्ट बनाने के लिए एक लाइब्रेरी है। यह परीक्षण किए जा रहे घटक को उसकी निर्भरताओं (डेटाबेस, बाहरी सेवाएँ) से अलग करने और ऑब्जेक्ट्स के बीच इंटरैक्शन की जाँच करने की अनुमति देता है।



Mockito की मुख्य क्षमताएँ:

  • mock() — mock-ऑब्जेक्ट का निर्माण
  • when().thenReturn() — व्यवहार निर्धारित करना
  • verify() — विधि कॉल की जाँच
  • @Mock और @InjectMocks — mocks का स्वचालित इंजेक्शन


Mockito के उपयोग का उदाहरण:

import static org.mockito.Mockito.*;import org.junit.jupiter.api.Test;

public class UserServiceTest {

@Test void testGetUser() { // रिपॉजिटरी के लिए mock बनाएँ UserRepository mockRepo = mock(UserRepository.class); when(mockRepo.findById(1L)).thenReturn(new User("Alice"));

UserService service = new UserService(mockRepo); User user = service.getUser(1L);

assertEquals("Alice", user.getName()); verify(mock

अनुशंसाएँ