जावा में परीक्षण: डेवलपर के लिए फ्रेमवर्क और उपकरण

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

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

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

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

\n\n

गुणवत्तापूर्ण परीक्षण जावा में पेशेवर विकास का एक अनिवार्य हिस्सा है। स्वचालित परीक्षणों के बिना बड़ी परियोजनाओं को बनाए रखना, नई सुविधाओं को लागू करना और प्रतिगमन त्रुटियों से बचना मुश्किल है। इस लेख में, हम जावा अनुप्रयोगों के परीक्षण के लिए प्रमुख उपकरणों और फ्रेमवर्क पर चर्चा करेंगे: यूनिट परीक्षण से लेकर इंटीग्रेशन जांच और UI ऑटोमेशन तक।

\n\n

जावा कोड का परीक्षण क्यों महत्वपूर्ण है?

\n

परीक्षण आपको यह करने की अनुमति देते हैं:

\n
    \n
  • विकास के शुरुआती चरणों में त्रुटियों का पता लगाना।
  • \n
  • रीफैक्टरिंग को सरल बनाना — आप तुरंत देख सकते हैं कि क्या टूटा है।
  • \n
  • कोड के व्यवहार का दस्तावेजीकरण करना।
  • \n
  • प्रत्येक कमिट पर प्रतिगमन की जाँच को स्वचालित करना।
  • \n
\n\n

JUnit 5 — यूनिट परीक्षण का आधार

\n

JUnit 5 जावा में मॉड्यूलर परीक्षण के लिए डी-फैक्टो मानक है। इसमें तीन मॉड्यूल शामिल हैं: JUnit Platform, JUnit Jupiter और JUnit Vintage। Jupiter एनोटेशन और एक्सटेंशन के साथ एक नया प्रोग्रामिंग मॉडल प्रदान करता है।

\n\n

JUnit 5 के साथ एक बुनियादी परीक्षण उदाहरण:

\n
import org.junit.jupiter.api.Test;\nimport static org.junit.jupiter.api.Assertions.*;\n\nclass CalculatorTest {\n    @Test\n    void testAddition() {\n        Calculator calc = new Calculator();\n        assertEquals(5, calc.add(2, 3), "2 + 3 को 5 होना चाहिए");\n    }\n}
\n\n

Mockito — स्टब्स और मॉक का निर्माण

\n

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

\n\n

JUnit 5 के साथ Mockito का उपयोग करने का उदाहरण:

\n
import org.junit.jupiter.api.Test;\nimport org.junit.jupiter.api.extension.ExtendWith;\nimport org.mockito.InjectMocks;\nimport org.mockito.Mock;\nimport org.mockito.junit.jupiter.MockitoExtension;\nimport static org.mockito.Mockito.*;\n\n@ExtendWith(MockitoExtension.class)\nclass UserServiceTest {\n    @Mock\n    private UserRepository repository;\n\n    @InjectMocks\n    private UserService service;\n\n    @Test\n    void testFindUser() {\n        when(repository.findById(1L)).thenReturn(new User("Alice"));\n        User result = service.findUser(1L);\n        assertEquals("Alice", result.getName());\n        verify(repository).findById(1L);\n    }\n}
\n\n

TestNG — विस्तारित क्षमताओं के साथ JUnit का विकल्प

\n

TestNG (Test Next Generation) एक फ्रेमवर्क है जो JUnit से प्रेरित है, लेकिन परीक्षण समूहों, पैरामीटरीकरण, निर्भरताओं और समानांतर निष्पादन के लिए समर्थन जोड़ता है। यह विशेष रूप से बड़ी परियोजनाओं और इंटीग्रेशन परीक्षण में लोकप्रिय है।

\n\n

TestNG में पैरामीटरीकृत परीक्षण का उदाहरण:

\n
import org.testng.annotations.DataProvider;\nimport org.testng.annotations.Test;\nimport static org.testng.Assert.assertEquals;\n\npublic class ParamTest {\n    @DataProvider(name = "numbers")\n    public Object[][] data() {\n        return new Object[][] { {1, 2, 3}, {0, 0, 0}, {-1, 1, 0} };\n    }\n\n    @Test(dataProvider = "numbers")\n    public void testAdd(int a, int b, int expected) {\n        assertEquals(a + b, expected);\n    }\n}
\n\n

Selenium — वेब इंटरफेस का ऑटोमेशन

\n

जावा वेब अनुप्रयोगों (जैसे Spring Boot पर) के परीक्षण के लिए, अक्सर Selenium WebDriver का उपयोग किया जाता है। यह ब्राउज़र में उपयोगकर्ता क्रियाओं को अनुकरण करने की अनुमति देता है: क्लिक, टेक्स्ट इनपुट, तत्वों की जाँच।

\n\n

Selenium परीक्षण का न्यूनतम उदाहरण:

\n
import org.openqa.selenium.By;\nimport org.openqa.selenium.WebDriver;\nimport org.openqa.selenium.chrome.ChromeDriver;\nimport org.junit.jupiter.api.Test;\n\npublic class LoginTest {\n    @Test\n    public void testLoginPage() {\n        WebDriver driver = new ChromeDriver();\n        driver.get("https://example.com/login");\n        driver.findElement(By.id("username")).sendKeys("admin");\n        driver.findElement(By.id("password")).sendKeys("pa                    

अनुशंसाएँ