@WebMvcTest और MockMvc से वेब परतों का परीक्षण
पूरा अनुप्रयोग संदर्भ शुरू किए बिना @WebMvcTest और MockMvc का उपयोग करके Spring Boot नियंत्रकों का अलग-अलग स्लाइस-परीक्षण कीजिए।
@WebMvcTest और MockMvc से वेब परतों का परीक्षण, CoddyKit पर परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
स्लाइस परीक्षण क्यों?
हर controller परीक्षण के लिए पूरा Spring संदर्भ लोड करना धीमा होता है। Spring Boot ऐसे परीक्षण स्लाइस उपलब्ध कराता है, जो केवल आवश्यक बीन्स लोड करते हैं। @WebMvcTest केवल वेब परत लोड करता है।
@WebMvcTest क्या लोड करता है
@WebMvcTest controllers, फ़िल्टर और JSON कन्वर्टर कॉन्फ़िगर करता है, लेकिन सेवाओं या रिपॉज़िटरी को नहीं लोड करता। ये सहयोगी मॉक के रूप में दिए जाते हैं।
परीक्षण घोषित करना
एकल controller को लक्ष्य बनाएँ, ताकि स्लाइस छोटा और तेज़ रहे।
@WebMvcTest(UserController.class)
class UserControllerTest {
@Autowired MockMvc mockMvc;
}सेवा का मॉक बनाना
controller की सेवा निर्भरता को @MockBean का उपयोग करके Mockito मॉक से बदल दिया जाता है, जो संदर्भ में मॉक रखता है।
@MockBean
UserService userService;अनुरोध करना
MockMvc बिना चल रहे सर्वर के आपके controller के विरुद्ध HTTP अनुरोधों का अनुकरण करता है।
mockMvc.perform(get("/users/1"))
.andExpect(status().isOk());व्यवहार निर्धारित करके जाँच करना
मॉक की गई सेवा का व्यवहार निर्धारित करें, अनुरोध भेजें और प्रतिक्रिया के बॉडी तथा स्थिति की जाँच करें।
when(userService.find(1L))
.thenReturn(new User(1L, "Ada"));
mockMvc.perform(get("/users/1"))
.andExpect(jsonPath("$.name").value("Ada"));स्थिति कोड जाँचना
त्रुटि मैपिंग की पुष्टि करें, जैसे सेवा द्वारा इकाई के न मिलने का संकेत देने पर 404 आना।
when(userService.find(9L))
.thenThrow(new NotFoundException());
mockMvc.perform(get("/users/9"))
.andExpect(status().isNotFound());बॉडी के साथ POST का परीक्षण
JSON सामग्री भेजें और पुष्टि करें कि controller उसे सही ढंग से डिसीरियलाइज़ करके उत्तर देता है।
mockMvc.perform(post("/users")
.contentType("application/json")
.content("{\"name\":\"Ada\"}"))
.andExpect(status().isCreated());JsonPath जाँचें
jsonPath एक्सप्रेशन आपको JSON प्रतिक्रिया के भीतर नेस्टेड फ़ील्ड, ऐरे के आकार और मानों की जाँच करने देते हैं।
.andExpect(jsonPath("$.items.length()").value(3))स्लाइस बनाम पूर्ण संदर्भ
केंद्रित और तेज़ वेब-परत परीक्षणों के लिए @WebMvcTest का उपयोग करें। @SpringBootTest को वास्तविक एंड-टू-एंड प्रवाहों के लिए रखें, जहाँ आप पूरा संदर्भ जोड़कर चलाना चाहते हैं।
गति के लाभ
क्योंकि केवल वेब परत लोड होती है, ये परीक्षण पूर्ण-संदर्भ परीक्षण की तुलना में बहुत कम समय में शुरू हो जाते हैं, जिससे controller का अधिक व्यापक परीक्षण प्रोत्साहित होता है।
त्वरित जाँच
@WebMvcTest में सेवा निर्भरताओं को कैसे संभाला जाता है?
पुनरावलोकन
आपने वेब-परत स्लाइस परीक्षण सीखा:
@WebMvcTestकेवल controllers और वेब अवसंरचना लोड करता हैMockMvcसर्वर के बिना HTTP अनुरोधों का अनुकरण करता है@MockBeanमॉक की गई सेवाएँ उपलब्ध कराता हैjsonPathसे स्थिति और बॉडी की जाँच करें
एआई शिक्षक के साथ परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “@WebMvcTest और MockMvc से वेब परतों का परीक्षण” पाठ निःशुल्क है?
हाँ — परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “@WebMvcTest और MockMvc से वेब परतों का परीक्षण” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“@WebMvcTest और MockMvc से वेब परतों का परीक्षण” में मैं क्या सीखूँगा?
पूरा अनुप्रयोग संदर्भ शुरू किए बिना @WebMvcTest और MockMvc का उपयोग करके Spring Boot नियंत्रकों का अलग-अलग स्लाइस-परीक्षण कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“@WebMvcTest और MockMvc से वेब परतों का परीक्षण” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर परीक्षण में निपुणता: JUnit, Mockito और एकीकरण परीक्षण पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Spring परीक्षण संदर्भ फ़्रेमवर्क
- RESTful एपीआई का परीक्षण
- परीक्षणों के लिए एम्बेडेड डेटाबेस
- @WebMvcTest और MockMvc से वेब परतों का परीक्षण