spock tutorial testing with spock
हाथों पर स्पॉक ट्यूटोरियल श्रृंखला: स्पॉक फ्रेमवर्क और ग्रूवी प्रोग्रामिंग लैंग्वेज के साथ परीक्षण
ट्यूटोरियल की यह श्रृंखला स्पॉक फ्रेमवर्क पर आपके ज्ञान को पूरी तरह से समृद्ध करेगी।
अवधारणा की आपकी आसान समझ के लिए प्रत्येक ट्यूटोरियल में सरल और स्पष्ट उदाहरण शामिल किए गए हैं।
मुफ्त में जानने के लिए तैयार हो जाओ !!
इस श्रृंखला के सभी स्पॉक ट्यूटोरियल की सूची:
शुरुआती और अनुभवी पेशेवरों के लिए इस गहन स्पॉक प्रशिक्षण श्रृंखला की मदद से स्पॉक के बारे में विस्तार से जानें।
ट्यूटोरियल # | संपर्क |
---|---|
ट्यूटोरियल # 1 | स्पॉक और ग्रूवी का परिचय |
ट्यूटोरियल # 2 | स्पॉक के साथ यूनिट टेस्ट लिखना |
ट्यूटोरियल # 3 | Spock के साथ Parameterized परीक्षण |
ट्यूटोरियल # 4 | मॉकिंग और स्टबिंग का प्रयोग करें |
ट्यूटोरियल # 5 | सेलेनियम फंक्शनल टेस्ट के साथ स्पॉक |
ट्यूटोरियल # 6 | साक्षात्कार के प्रश्न |
स्पॉक सीरीज़ में ट्यूटोरियल का अवलोकन
Tutorial_Num | आप क्या सीखेंगे |
---|---|
ट्यूटोरियल # 1 | स्पॉक और ग्रूवी का परिचय यह परिचयात्मक ट्यूटोरियल सभी को Spock के बारे में समझाएगा, जो एक परीक्षण ढांचा है जो ग्रूवी के शीर्ष पर बनाया गया है। यह मूल रूप से BDD को लागू करता है और BDD सम्मेलनों के बाद ढांचे का उपयोग करके लिखे गए सभी परीक्षणों को सुनिश्चित करता है। |
ट्यूटोरियल # 2 | स्पॉक के साथ यूनिट टेस्ट लिखना इस ट्यूटोरियल में, हम उन सभी विवरणों / चरणों के माध्यम से चलेंगे, जिन्हें सरल उदाहरणों के साथ स्पॉक में यूनिट परीक्षण के साथ आरंभ करने के लिए आवश्यक है। |
ट्यूटोरियल # 3 | Spock के साथ Parameterized परीक्षण यह ट्यूटोरियल स्पष्ट रूप से बताएगा कि क्या पैरामीटराइज्ड परीक्षण हैं और आप डेटा-संचालित परीक्षण को प्राप्त करने के लिए स्पॉक के इन-बिल्ट फीचर्स का लाभ कैसे उठा सकते हैं। |
ट्यूटोरियल # 4 | मॉकिंग और स्टबिंग का प्रयोग करें यह स्पॉक ट्यूटोरियल मॉकिंग और स्टबिंग के बारे में विस्तार से बताएगा जो व्यापक यूनिट परीक्षणों के सबसे आवश्यक बिल्डिंग ब्लॉक्स में से एक हैं। |
ट्यूटोरियल # 5 | सेलेनियम फंक्शनल टेस्ट के साथ स्पॉक इंटीग्रेशन टेस्टिंग (बाकी सेवाओं की तरह) और इस सूचनात्मक ट्यूटोरियल से कार्यात्मक परीक्षण के लिए स्पॉक का उपयोग करना सीखें। उदाहरण के लिए, सेलेनियम के साथ स्पॉक को एकीकृत करना। |
ट्यूटोरियल # 6 | साक्षात्कार के प्रश्न इस ट्यूटोरियल में उत्तर और उदाहरण के साथ सबसे लोकप्रिय स्पोक साक्षात्कार प्रश्न की एक सूची शामिल है। ये प्रश्न वास्तव में किसी को भी पहले प्रयास में सफलतापूर्वक स्पॉक साक्षात्कार को स्पष्ट करने के लिए मार्गदर्शन करेंगे। |
आप क्या सीखेंगे:
- Spock क्या है?
- स्पॉक और ग्रूवी वीडियो ट्यूटोरियल देखें
- ग्रूवी क्या है?
- स्पॉक के साथ शुरुआत करना
- एक स्पॉक स्पेसिफिकेशन का एनाटॉमी
- विशिष्ट ब्लॉक विवरण
- महत्वपूर्ण टिप्स
- निष्कर्ष
- अनुशंसित पाठ
Spock क्या है?
Spock एक परीक्षण ढाँचा है जिसे Groovy के शीर्ष पर बनाया गया है। यह बीडीडी को लागू करता है और यह सुनिश्चित करता है कि फ्रेमवर्क का उपयोग करते हुए लिखे गए सभी परीक्षण बीडीडी सम्मेलनों का पालन करें।
इसके अलावा, JUnit के विपरीत, Spock की अपनी मॉकिंग है और दोहरे पुस्तकालयों का परीक्षण करने के साथ-साथ मानकीकृत परीक्षण परिदृश्यों के लिए पूर्ण समर्थन है।
यह स्वयं में इस पूर्ण पैकेज के कारण है, स्पॉक विनिर्देशों सुपर पठनीय और अभिव्यंजक हैं और जिसके परिणामस्वरूप वे क्लिच बॉयलरप्लेट कोड को कम करने के लिए अधिक से अधिक प्राप्त करने के लिए परीक्षण करते हैं।
इन सभी शांत विशेषताओं के बावजूद, स्पॉक परीक्षण मौजूदा JUnit परीक्षण धावक और मौजूदा कमांड लाइन / मावेन और ग्रैडल जैसे उपकरणों का उपयोग करके चलाने योग्य हैं, जो इसे उपयोग करने के लिए और भी अधिक मजबूर करते हैं। संक्षेप में, Spock JUnit की सभी अच्छी विशेषताओं को जोड़ती है, BDD (जेबीहेव और चौखटे की तरह) खीरा ) साथ ही साथ मॉकिंग।
हम आगे के खंडों में इन विशेषताओं में से प्रत्येक को दर्शाने वाले कुछ उदाहरणों पर एक नज़र डालेंगे।
स्पॉक और ग्रूवी वीडियो ट्यूटोरियल देखें
ग्रूवी क्या है?
Groovy जावा प्लेटफ़ॉर्म के लिए एक स्क्रिप्टिंग भाषा है।
ग्रूवी की कुछ मुख्य विशेषताओं में शामिल हैं:
# 1) यह गतिशील रूप से टाइप किए गए (जहां एक चर किसी भी प्रकार के डेटा को पकड़ सकता है) और साथ ही सांख्यिकीय रूप से टाइप किया जाता है (जो डेटा रखने वाले चर पर दृढ़ता से टाइप किए गए निर्माण को लागू करता है)।
उदाहरण : हमने सरणी और मानचित्र को उसी तरह से असाइन किया है और आंतरिक रूप से ग्रूवी प्रकार को निर्धारित करता है और इसे उचित रूप से संभालता है।
def listType = (1,2,3) def mapType = ('red':2,'green':3) println(listType.getClass()) println(mapType.getClass())
उपरोक्त कोड नमूने का आउटपुट है:
कक्षा java.util.ArrayList
कक्षा java.util.LinkedHashMap
#दो) सभी वैध जावा कोड एक वैध ग्रूवी कोड भी है (लेकिन दूसरा तरीका नहीं है क्योंकि इसमें अतिरिक्त सुविधाएँ भी हैं)।
# 3) अन्य विशेषताओं में मेटा-प्रोग्रामिंग, क्लोजर, स्टेटिक टाइप चेकिंग आदि शामिल हैं।
# 4) भिन्न जावा अर्धविराम ग्रूवी में वैकल्पिक होते हैं और आदिम प्रकार को डिफ़ॉल्ट रूप से ऑब्जेक्ट माना जाता है।
चूंकि यह ट्यूटोरियल श्रृंखला स्पॉक पर अधिक केंद्रित है, इसलिए हम केवल उन ग्रूवी विशेषताओं को सीखेंगे जो स्पॉक आधारित परीक्षण विनिर्देशों को संलेखन के लिए आवश्यक हैं।
स्पॉक के साथ शुरुआत करना
आरंभ करने के लिए, आइए देखें कि आपके द्वारा उपयोग की जा रही निर्माण प्रणाली के आधार पर किन पुस्तकालयों की आवश्यकता है (उदा। ग्रेड / मेलेन)।
मावेन आधारित परियोजनाओं के लिए
मावेन परियोजनाओं को ग्रूवी आधारित विनिर्देशों को चलाने के लिए ग्रेड कोड के साथ-साथ एक अचूक प्लगइन के लिए एक प्लगइन शामिल करने की आवश्यकता होगी। इस ग्रूवी और स्पॉक के अलावा, निर्भरता को भी जोड़ा जाना चाहिए।
org.codehaus.gmavenplus gmavenplus-plugin 1.5 testCompile maven-surefire-plugin 2.18.1 false **/*Spec.java org.spockframework spock-core 1.3-groovy-2.5 test
ग्रेडेल आधारित परियोजनाओं के लिए
नीचे के रूप में एक नमूना ढाल फ़ाइल के लिए, सबसे महत्वपूर्ण आवश्यकताओं में कोडल प्लगइन और कोड और परीक्षण के लिए ग्रूवी पर निर्भरताएं शामिल हैं।
plugins { id 'java' id 'groovy' } repositories { mavenCentral() } dependencies { compile 'org.codehaus.groovy:groovy-all:2.4.8' testCompile 'org.spockframework:spock-core:1.1-groovy-2.4' }
एक स्पॉक स्पेसिफिकेशन का एनाटॉमी
जेवीएम पर चलने वाली किसी भी भाषा के लिए स्पॉक टेस्ट लिखे जा सकते हैं। इसका मतलब यह है कि भले ही आपका एप्लिकेशन कोड जावा या स्काला या कोटलिन आदि में हो, फिर भी आप Spock में अपनी यूनिट / एकीकरण परीक्षण (JUnit, JBehave, आदि जैसे अन्य पर) लिखना चुन सकते हैं।
स्पॉक टेस्ट कक्षाओं को 'स्पेसिफिकेशन्स' (बीडीडी दुनिया में स्पेस के समान) कहा जाता है और आप स्पॉक फ्रेमवर्क के 'स्पेसिफिकेशन' क्लास का विस्तार कर सकते हैं। (विशिष्टता स्पॉक फ्रेमवर्क का आधार वर्ग है)।
प्रत्येक युक्ति फ़ाइल में कई परीक्षण (एक JUnit परीक्षण वर्ग फ़ाइल के समान) हो सकते हैं और प्रत्येक परीक्षण में वैकल्पिक रूप से BDD ब्लॉक हो सकते हैं, अर्थात्, जब और फिर दिए गए। यह अन्य बीडीडी फ्रेमवर्क के समान है, जहां इनमें से प्रत्येक खंड को क्रमशः JUnit परीक्षणों में अरेंज, एक्ट और असिस्टर सेक्शन से संबंधित किया जा सकता है।
नीचे युक्ति और परीक्षणों के पदानुक्रम को दर्शाने वाला एक ब्लॉक आरेख है।
आइए देखें कि कोड में नमूना विनिर्देश कैसा दिखता है:
import spock.lang.Specification class SampleSpec extends Specification { def 'check case-insensitive equality of 2 strings'() { given: String str1 = 'hello' String str2 = 'HELLO' when: str1 = str1.toLowerCase() str2 = str2.toLowerCase() then: str1 == str2 } def 'check addition of 2 numbers'() { given: int input1 = 10 int input2 = 25 when: int result = input1 + input2 then: result == 35 } }
यहाँ नोट करने के लिए कुछ महत्वपूर्ण बिंदु:
# 1) परीक्षण परिदृश्यों (डिफॉल्ट कीवर्ड के बाद स्ट्रिंग) के नाम पर देखें: 'केस-असंवेदनशील समानता 2 स्ट्रिंग्स की जांच करें'। ये सादे अंग्रेजी तार हैं और यह परीक्षण के नामों को काफी पठनीय बनाता है और यह प्राप्त करने के रूप में परीक्षण करने के लिए एक वास्तविक अर्थ देता है।
इसकी तुलना सामान्य JUnit परीक्षण से करें जहाँ परीक्षण का नाम c जैसा कुछ दिखाई देगा।
caseEquality_withValidInput_shouldBeEqual()
#दो) यह देखते हुए कि कब और फिर ब्लॉक व्यवस्था, अधिनियम और मुखर के बराबर हैं। इनमें से तत्कालीन (या मुखर ब्लॉक) को देखते हैं जो समानता का दावा करता है और अभिकथन से जुड़े सभी बॉयलरप्लेट कोड से बचता है।
उदाहरण , JUnit में एक जोर के रूप में नीचे दिखाया गया है:
@Test public void compareStrings_withValidInput_shouldReturnSuccess() { // Arrange String str1 = 'hello'; String str2 = 'HELLO'; // Act str1 = str1.toLowerCase(); str2 = str2.toLowerCase(); // Assert Assert.assertEquals(str1,str2); }
जैसा कि आप ऊपर से देख सकते हैं, स्पॉक परीक्षण परीक्षण को कम क्रिया के रूप में देखते हैं और साथ ही सभी बॉयलरप्लेट कोड को अभिकथन (और सेटअप, आदि) से बचते हैं।
विशिष्ट ब्लॉक विवरण
एक परीक्षण में प्रत्येक व्यक्तिगत ब्लॉक के लिए, आप उस ब्लॉक के बारे में अधिक विवरण प्रदान करने के लिए एक स्ट्रिंग के रूप में ब्लॉक विवरण प्रदान करना चुन सकते हैं जिसे निष्पादित किया जा रहा है। यह परीक्षण के लिए एक अधिक क्रिया संरचना प्रदान करने के लिए सहायक है।
आइए नीचे एक उदाहरण देखें:
def 'check case-insensitive equality of 2 strings'() { given: 'two input strings' String str1 = 'hello' String str2 = 'HELLO' when: 'strings are lowercased' str1 = str1.toLowerCase() str2 = str2.toLowerCase() then: 'equal strings should return success' str1 == str2 }
महत्वपूर्ण टिप्स
# 1) एक Spock आधारित कल्पना में सभी ब्लॉक वैकल्पिक हैं। हालांकि, अगर 'जब' और 'तब' मौजूद हो तो क्रम से एक साथ दिखाई देना चाहिए।
#दो) यदि आपको केवल एक दावे को सत्यापित करने की आवश्यकता है (और जब आपको ब्लॉक की आवश्यकता नहीं है), तो आप उपयोग कर सकते हैं ” उम्मीद ' खंड मैथा। इसका उपयोग पूर्व स्थितियों के पहले और बाद में ब्लॉक करने के लिए किया जा सकता है (और एक परीक्षण में कई बार उपयोग किया जा सकता है)।
चलो 'जब' ब्लॉक को निष्पादित करने से पहले पूर्व शर्त को मान्य करने जैसी अपेक्षा का नमूना उपयोग देखें।
def 'check addition of 2 numbers'() { given: int input1 = 10 int input2 = 25 expect: input1.getClass().toString() == 'class java.lang.Integer' input2.getClass().toString() == 'class java.lang.Integer' input1 = Integer.MIN_VALUE when: int result = input1 + input2 then: result == 35 }
जैसा कि ऊपर दिखाया गया है, उम्मीद ब्लॉक इनपुट फ़ील्ड के वर्ग मान के साथ-साथ सीमा के भीतर झूठ बोलने के लिए इनपुट में से एक के मूल्य को मुखर करने की कोशिश कर रहा है।
निष्कर्ष
इस स्पॉक ट्यूटोरियल में, हमने ग्रूवी प्रोग्रामिंग लैंग्वेज की मूल बातें, एक स्पॉक स्पेसिफिकेशन के एनाटॉमी या बेसिक बिल्डिंग ब्लॉक्स के साथ कवर किया है।
हमने ग्रूवी आधारित स्पॉक विनिर्देशों को लिखने के लिए आवश्यक निर्भरता के साथ एक नमूना परियोजना बनाई और एक नमूना विनिर्देश लिखा।
इस श्रृंखला के अन्य ट्यूटोरियल्स में, हम स्पॉक फ्रेमवर्क द्वारा दी गई विशेषताओं में गहराई से जान डालेंगे और यह जान पाएंगे कि कैसे वे स्वच्छ और पठनीय परीक्षण विनिर्देशों को बनाने के लिए ग्रूवी भाषा का उपयोग करते हैं।
विंडोज़ 10 के लिए सबसे अच्छा मुफ्त फ़ाइल कनवर्टर
Spock पर टेस्ट जुड़नार, अभिकथन और रिपोर्टिंग के बारे में अधिक जानने के लिए हमारे आगामी स्पॉक ट्यूटोरियल्स के लिए बने रहें।
अनुशंसित पाठ
- स्पॉक फ्रेमवर्क के साथ यूनिट टेस्ट लिखना
- उत्तर के साथ स्पॉक साक्षात्कार प्रश्न (सर्वाधिक लोकप्रिय)
- सेलेनियम के साथ एकीकरण और कार्यात्मक परीक्षण के लिए स्पॉक
- मॉकिंग और स्टबिंग (वीडियो ट्यूटोरियल के साथ उदाहरण)
- स्पॉक फ्रेमवर्क के साथ डेटा-संचालित या परिमितित परीक्षण
- शुरुआती के लिए गहराई से ग्रहण ट्यूटोरियल
- उदाहरणों के साथ जावा परावर्तन ट्यूटोरियल
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण