Spring परीक्षण संदर्भ फ़्रेमवर्क
समझें कि Spring का परीक्षण संदर्भ फ़्रेमवर्क एकीकरण परीक्षणों के लिए अनुप्रयोग संदर्भों को कैसे प्रारंभ और प्रबंधित करता है।
Spring परीक्षण संदर्भ फ़्रेमवर्क, CoddyKit पर परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Spring परीक्षण संदर्भ का परिचय
Spring Boot एकीकरण परीक्षण में आपका स्वागत है! जब आप Spring अनुप्रयोगों के लिए परीक्षण लिखते हैं, तो आपको अपने अनुप्रयोग के किसी भाग को शुरू करने का तरीका चाहिए। यहीं Spring Test Context Framework काम आता है।
यह आपके परीक्षणों के लिए ApplicationContext को लोड और प्रबंधित करने का आधारभूत ढाँचा प्रदान करता है, जिससे यह सुनिश्चित होता है कि वे Spring-अनुकूल परिवेश में चलें। उन परीक्षणों के लिए यह अत्यंत महत्वपूर्ण है जो बीन्स, सेवाओं या डेटा स्तरों के साथ काम करते हैं।
@SpringBootTest एनोटेशन
Spring Boot एकीकरण परीक्षण का मूल @SpringBootTest एनोटेशन है। यह JUnit को आपके परीक्षण के लिए Spring Boot अनुप्रयोग संदर्भ शुरू करने का निर्देश देता है।
- यह एक पूर्ण
ApplicationContextशुरू करता है। - यह मुख्य कॉन्फ़िगरेशन क्लास ढूँढ़ता है, जो प्रायः आपकी
@SpringBootApplicationक्लास होती है। - यह परीक्षण के भीतर आपके सभी Spring बीन्स तक पहुँच प्रदान करता है।
इसे ऐसे समझिए जैसे आप अपना पूरा अनुप्रयोग चला रहे हों, लेकिन विशेष रूप से अपने परीक्षण की आवश्यकताओं के लिए।
संदर्भ कैसे लोड किए जाते हैं
जब @SpringBootTest का उपयोग किया जाता है, तो Spring का परीक्षण ढाँचा आपकी मुख्य अनुप्रयोग क्लास (जिस पर @SpringBootApplication लगा होता है) को ढूँढ़ता है और उसका उपयोग करके एक ApplicationContext बनाता है।
यह संदर्भ मूलतः आपके अनुप्रयोग के सभी घटकों (बीन्स) का कंटेनर होता है। इसके बाद आपका परीक्षण इसी सक्रिय अनुप्रयोग संदर्भ के विरुद्ध चलता है, जिससे वह वास्तविक सेवाओं, रिपॉज़िटरी और Spring द्वारा प्रबंधित अन्य घटकों के साथ काम कर सकता है।
गति के लिए संदर्भ कैशिंग
एक पूर्ण Spring ApplicationContext लोड होने में समय लग सकता है। अपने परीक्षण समूह को तेज़ बनाने के लिए Spring Test Context Framework संदर्भों को समझदारी से कैश करता है।
- यदि कई परीक्षणों को बिल्कुल समान संदर्भ कॉन्फ़िगरेशन की आवश्यकता हो, तो Spring पहले से लोड किए गए संदर्भ का पुनः उपयोग करता है।
- इससे परीक्षण चलने का समय काफ़ी कम हो जाता है, विशेषकर बड़ी परियोजनाओं में।
- संदर्भ को केवल तभी दोबारा लोड किया जाता है जब कॉन्फ़िगरेशन (जैसे प्रॉपर्टी या सक्रिय प्रोफ़ाइल) बदलती है।
बुनियादी Spring अनुप्रयोग का उदाहरण
यहाँ एक न्यूनतम Spring Boot अनुप्रयोग दिया गया है। जब आप @SpringBootTest का उपयोग करते हैं, तो ढाँचा इस क्लास के आधार पर एक संदर्भ लोड करता है और इसकी बीन्स को आपके परीक्षणों के लिए उपलब्ध कराता है।
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(MyApp.class, args);
System.out.println("App context loaded: " + (context != null));
}
}@SpringBootTest का उपयोग (परीक्षण)
अब देखते हैं कि पिछले दृश्य के MyApp के लिए संदर्भ लोड करने हेतु कोई परीक्षण @SpringBootTest का उपयोग कैसे करेगा। हम यह जाँचने के लिए ApplicationContext इंजेक्ट करते हैं कि वह लोड हुआ है।
ध्यान दें कि इस परीक्षण क्लास में स्वयं कोई main विधि नहीं है, क्योंकि JUnit रनर इसका निष्पादन संभालते हैं।
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest
class MyApplicationTests {
@Test
void contextLoads(ApplicationContext context) {
assertThat(context).isNotNull();
System.out.println("ApplicationContext loaded for test!");
}
}वेब परिवेश को अनुकूलित करना
वेब अनुप्रयोगों के लिए @SpringBootTest आपके परीक्षणों हेतु वेब सर्वर शुरू कर सकता है। आप इस व्यवहार को webEnvironment एट्रिब्यूट से नियंत्रित करते हैं:
MOCK(डिफ़ॉल्ट): एक नकली सर्वलेट परिवेश प्रदान करता है।RANDOM_PORT: किसी यादृच्छिक पोर्ट पर एम्बेडेड सर्वर शुरू करता है।DEFINED_PORT: डिफ़ॉल्ट या कॉन्फ़िगर किए गए पोर्ट पर एम्बेडेड सर्वर शुरू करता है।NONE: कोई एम्बेडेड सर्वर शुरू नहीं करता।
पोर्ट के टकराव से बचने के लिए प्रायः RANDOM_PORT को प्राथमिकता दी जाती है।
वेब परिवेश का उदाहरण
यहाँ बताया गया है कि किसी यादृच्छिक पोर्ट पर वेब सर्वर शुरू करने के लिए @SpringBootTest को कैसे कॉन्फ़िगर किया जाता है। इससे आप अपने परीक्षणों के भीतर अपने अनुप्रयोग को वास्तविक HTTP अनुरोध भेज सकते हैं।
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.beans.factory.annotation.Value;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
class WebAppTests {
@Value(value="${local.server.port}")
private int port;
@Test
void serverStarts() {
assertThat(port).isNotZero();
System.out.println("Web server started on port: " + port);
}
}परीक्षण प्रॉपर्टी को अधिलेखित करना
कभी-कभी आपके परीक्षणों के लिए ऐसी विशिष्ट कॉन्फ़िगरेशन प्रॉपर्टी की आवश्यकता होती है जो आपके मुख्य अनुप्रयोग से अलग हो, जैसे परीक्षण डेटाबेस का URL। आप @SpringBootTest में properties एट्रिब्यूट का उपयोग करके इन्हें अधिलेखित कर सकते हैं।
इससे उत्पादन कोड में बदलाव किए बिना अपने परीक्षण परिवेश को अलग रखना संभव होता है।
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
@SpringBootApplication
public class PropApp implements CommandLineRunner {
@Value("${app.message:Default Message}")
private String message;
public static void main(String[] args) {
SpringApplication.run(PropApp.class, args);
}
@Override
public void run(String... args) throws Exception {
System.out.println("App Message: " + message);
}
}त्वरित जाँच
किस @SpringBootTest.WebEnvironment विकल्प का उपयोग करके आप किसी उपलब्ध यादृच्छिक पोर्ट पर एम्बेडेड वेब सर्वर शुरू करेंगे?
पुनरावलोकन: Spring Test Context
आपने Spring Test Context Framework के बारे में सीखा, जो एकीकरण परीक्षण के लिए एक शक्तिशाली उपकरण है। हमने इन विषयों को शामिल किया:
- ढाँचे और
@SpringBootTestका उद्देश्य। - अनुप्रयोग संदर्भ कैसे लोड और कैश किए जाते हैं।
webEnvironmentसे परीक्षण परिवेश को अनुकूलित करना।- परीक्षण-विशिष्ट कॉन्फ़िगरेशन के लिए प्रॉपर्टी को अधिलेखित करना।
मज़बूत और कुशल Spring Boot एकीकरण परीक्षण लिखने के लिए यह आधार आवश्यक है!
एआई शिक्षक के साथ परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “Spring परीक्षण संदर्भ फ़्रेमवर्क” पाठ निःशुल्क है?
हाँ — परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Spring परीक्षण संदर्भ फ़्रेमवर्क” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Spring परीक्षण संदर्भ फ़्रेमवर्क” में मैं क्या सीखूँगा?
समझें कि Spring का परीक्षण संदर्भ फ़्रेमवर्क एकीकरण परीक्षणों के लिए अनुप्रयोग संदर्भों को कैसे प्रारंभ और प्रबंधित करता है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Spring परीक्षण संदर्भ फ़्रेमवर्क” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Spring परीक्षण संदर्भ फ़्रेमवर्क
- RESTful एपीआई का परीक्षण
- परीक्षणों के लिए एम्बेडेड डेटाबेस
- @WebMvcTest और MockMvc से वेब परतों का परीक्षण