अक्टोबर 11, 2022

Angular Unit परीक्षण कसरी गर्ने र किन गर्ने?

कार्यक्रमको प्रत्येक प्रकार्यले योजना अनुसार काम गर्छ भन्ने ग्यारेन्टी गर्न प्रत्येक सुविधा (एकाइको रूपमा पनि चिनिन्छ) परीक्षण गर्नु महत्त्वपूर्ण छ। परीक्षणमा, एक विशेष क्षमता बनाम सम्पूर्ण कार्यक्रम अन्त्य-देखि-अन्तको मूल्याङ्कन एकदम फरक छ। एकाइ परीक्षण यस बिन्दुमा खेलमा आउँछ।

Angular एक खुला स्रोत, TypeScript-आधारित JavaScript फ्रेमवर्क हो। जाभास्क्रिप्ट अनलाइन एपहरू निर्माण गर्न प्रयोग गरिने शक्तिशाली प्रोग्रामिङ भाषा भएको हुनाले, JavaScript मा एकाइ परीक्षण कसरी गर्ने भनेर बुझ्न महत्त्वपूर्ण छ। यस लेखले यी परीक्षणहरू कसरी सञ्चालन गर्ने, के प्रयोग गर्ने, र किन गर्ने भनेर अन्वेषण गर्नेछ।

कोणीय के हो?

आधुनिक वेबसाइटहरूले कम्प्युटर भाषा JavaScript (JS) प्रयोग गर्दछ, जसले धेरै अन्तरक्रियात्मक तत्वहरू प्रदान गर्दछ जससँग उपभोक्ताहरू परिचित छन्। वेब विकासकर्ताहरू प्रायः क्लाइन्ट-साइड JavaScript फ्रेमवर्कमा कार्यक्षमताको लागि र वेबसाइटहरू र अनलाइन सम्पत्तिहरू सही रूपमा काम गर्नको लागि निर्भर हुन्छन्।

Angular एउटा टेक्नोलोजी हो जसले वेब एप्लिकेसनको विकास गर्ने, डिजाइनमा सहयोग गर्ने, र अन्तर्निहित कोडलाई व्यवस्थित गर्ने माध्यम प्रदान गर्दछ। 2010 मा, Google ले AngularJS को रूपमा चिनिने JavaScript फ्रेमवर्क जारी गर्‍यो। यसले एक सुविधा समावेश गर्दछ जसले विकासकर्ताहरूलाई समृद्ध, एकल-पृष्ठ एपहरू सिर्जना गर्न सुविधा दिन्छ। AngularJS को पछिल्लो संस्करण को नाम Angular मा छोटो छ।

महत्त्वपूर्ण संस्थाहरूले एप्लिकेसनहरू निर्माण गर्न Angular प्रयोग गरेका छन्, जसमध्ये धेरै मुख्यधारा ब्रान्डहरू भएका छन्। जस्तै-

  • जीमेल
  • यूट्यूब टिभी
  • Paypal
  • Wix WebApps
  • माइक्रोसफ्ट वेब
  • माथिल्लो कार्य
  • स्वतंत्र

तपाईंले किन Angular एपहरू परीक्षण गर्नुपर्छ?

कार्यद्वारा एङ्गुलर कोडबेस प्रकार्य प्रमाणीकरण गर्नु कोडको गुणस्तर बढाउन, उत्पादनमा कम त्रुटिहरू र कम डेड कोडहरू, मर्मत लागतहरू कम गर्न, र सम्पूर्ण प्रणालीलाई हानी नगरी असंगतिहरू बिना छिटो रिफ्याक्टरिंग र अपग्रेडहरू पूरा गर्न सबैभन्दा प्रभावकारी दृष्टिकोण हो।

सुरुमा, यो ढिलो लाग्न सक्छ, तर यसले लामो समयसम्म भुक्तान गर्दछ। विकास प्रक्रियाको दौरान, बगहरू पहिचान र निश्चित छन्। डिबगिङको लागि प्रक्रिया परिष्कृत गरिएको छ। यदि कुनै विशेष परीक्षण असफल भयो भने, यो योजना अनुसार काम गरिरहेको छैन भनेर निश्चित रूपमा निर्धारण गर्न सरल छ। र परीक्षण-संचालित विकास र एकाइ परीक्षण, विशेष गरी, थप जटिल देखिन्छ, नयाँ लाभ उठाउँदै परीक्षण स्वचालन प्लेटफार्महरू र उत्कृष्ट अभ्यासहरूले महत्त्वपूर्ण रूपमा सम्पूर्ण प्रक्रियालाई सरल र स्वचालित बनाउन सक्छ।

एकाइ परीक्षण के हो?

एकाइ परीक्षण स्वचालित परीक्षण को विधिहरु मध्ये एक हो। एकाइ परीक्षणहरूले पूर्ण अलगावमा एप्लिकेसनको स-साना भागहरू अभ्यास गर्दछ र तिनीहरूको वास्तविक व्यवहारलाई इच्छित व्यवहारसँग तुलना गर्दछ। वाक्यांश "पूर्ण अलगाव" ले तथ्यलाई बुझाउँछ कि एकाइ-परीक्षण कोणीय अनुप्रयोगहरू बाह्य निर्भरताहरू जस्तै डाटाबेस, फाइल प्रणाली, वा HTTP सेवाहरूसँग जोडिएको छैन। यसले एकाइ परीक्षणहरूलाई थप भरपर्दो र छिटो हुन सक्षम बनाउँछ किनभने तिनीहरू बाह्य सेवाहरूमा कठिनाइहरूको कारणले असफल हुने छैनन्।

एकाइ परीक्षण कोड प्रयोग गरेर उत्पादन गरिन्छ। तपाईले एकाइ परीक्षणलाई साना कार्यक्रमहरूको रूपमा सोच्न सक्नुहुन्छ जुन साना खण्डहरूसँग अन्तरक्रिया गरेर तपाइँको आवेदन प्रयोग गर्दछ। प्रत्येक एकाइ परीक्षणले एक विशेष परिस्थितिमा एकाइले कसरी काम गर्छ भनेर वर्णन वा चित्रण गर्न मिल्दोजुल्दो छ। परीक्षणहरूको सुइट सञ्चालन गरेर, विकासकर्ताहरूले कोडबेस परिमार्जन गरेपछि तत्काल प्रतिक्रिया प्राप्त गर्न सक्छन्।

तपाईंले किन एङ्गुलर एकाइ परीक्षण गर्नुपर्छ?

सामान्यतया, विकासकर्ताहरूले पहिले एकाइ परीक्षणहरू बनाउँछन्, त्यसपछि वास्तविक कार्यक्रम कोड। परीक्षण-संचालित विकासले यस पद्धति (TDD) को वर्णन गर्दछ। TDD मा, आवश्यकताहरूलाई विशेष परीक्षण केसहरूमा रूपान्तरण गरिन्छ, र कार्यक्रमलाई पछि नयाँ कोणीय परीक्षणहरू पास गर्नको लागि बढाइन्छ। एकाइ परीक्षणहरूले अन्य एकाइहरूको कार्य वा सम्पूर्ण कार्यक्रमलाई असर नगरी कोड परिवर्तन गर्न दिन्छ। यसले विकासकर्ताहरूलाई यस चरणमा त्रुटिहरू पहिचान गर्न थप सरल बनाएर स्रोतहरू बचत गर्दछ।

थप रूपमा, एकाइ परीक्षण वातावरण भित्र, उत्पादनको मोड्युलहरू एकअर्काबाट अलग हुन्छन् र तिनीहरूको जिम्मेवारी क्षेत्र हुन्छ। यस अवस्थामा, परीक्षण अधिक विश्वसनीय छ किनकि तिनीहरू एक सीमित सेटिङमा सञ्चालन गरिन्छ। यस स्थिरताको कारण, कोड पनि भरपर्दो हुन्छ।

माथि उल्लेखित तथ्यहरु संगै, एकाइ परीक्षण को धेरै फाइदाहरु को जाँच गरौं।

  • एकाइ परीक्षणहरूले चाँडै समस्याहरू पत्ता लगाउन र समाधान गर्न मद्दत गर्दछ। आफ्नो विकास प्रक्रियामा एकाइ परीक्षण लागू गर्ने र सफ्टवेयरको जीवनकालमा सम्भव भएसम्म चाँडो परीक्षण सुरु गर्ने संस्थाहरूले समस्याहरू छिटो फेला पार्न र समाधान गर्न सक्छन्।
  • तपाईंको इकाई परीक्षण सुइटले विकासकर्ताहरूको लागि सुरक्षा जालको रूपमा काम गर्दछ। एकाइ परीक्षणहरूको पूर्ण सुइटले विकासकर्ताहरूको लागि सुरक्षा जालको रूपमा काम गर्न सक्छ। आवधिक रूपमा परीक्षणहरू कार्यान्वयन गरेर, तिनीहरूले यो सुनिश्चित गर्न सक्छन् कि तिनीहरूको कोडमा हालैका परिवर्तनहरूले कुनै पनि क्षति गरेको छैन। अर्को शब्दमा, एकाइ परीक्षणहरू प्रतिगमनबाट बच्न मद्दत गर्दछ।
  • एकाइ परीक्षणहरूले कोडको गुणस्तर सुधार गर्न मद्दत गर्न सक्छ। यो वस्तु स्वाभाविक रूपमा अघिल्लो लेखबाट पछ्याउँछ। एकाइ परीक्षणहरूले सुरक्षा जालको रूपमा काम गर्ने हुनाले, कोड परिमार्जन गर्दा विकासकर्ताहरू बढी विश्वस्त हुन्छन्। तिनीहरूले कोडबेसको समग्र गुणस्तर बृद्धि गर्दै, कुनै पनि कुरा तोड्ने चिन्ता नगरी कोडलाई पुनर्संरचना गर्न सक्छन्।
  • एकाइ परीक्षणले अनुप्रयोग वास्तुकला सुधार गर्न मद्दत गर्न सक्छ। कोडबेसमा एकाइ परीक्षणहरू थप्दा प्रायः उच्च-गुणस्तरको अनुप्रयोग डिजाइनलाई संकेत गर्दछ। तसर्थ, परीक्षण योग्य कोड उत्पादन गर्न आवश्यक सुधार डिजाइन उत्प्रेरित हुन सक्छ। यसैले TDD (परीक्षण-संचालित विकास) यति कुशल छ।
  • एकाइ परीक्षण कागजात रूपमा प्रयोग गर्न सकिन्छ। एकाइ परीक्षणहरूले परीक्षण भइरहेको कोड कसरी प्रयोग गर्ने भन्ने उदाहरणहरू प्रदान गर्दछ। फलस्वरूप, तपाईंले तिनीहरूलाई कार्यान्वयन योग्य कागजात वा चश्माको रूपमा पनि सोच्न सक्नुहुन्छ।
  • तपाईंको कोडबेसमा कोड गन्धहरू पहिचान गर्नुहोस्। कोडको विशेष टुक्राको लागि एकाइ परीक्षणहरू उत्पन्न गर्न कठिनाई हुनुले कोडको गन्धलाई संकेत गर्दछ, जस्तै धेरै जटिल दिनचर्याहरू। यदि कोडबेसमा एकाइ परीक्षणहरू थप्न सकिने सरलता सकारात्मक सूचक हो भने, कुराकानी पनि सत्य हो।

एंगुलर र टेस्ट एङ्गुलर कम्पोनेन्टहरूमा एकाइ परीक्षण कसरी सञ्चालन गर्ने

कम्पोनेन्टहरूका लागि परीक्षणहरू डिजाइन गर्दा, यी सबै व्यवहारहरू विचार गरिएका छन् भनी सुनिश्चित गर्नुहोस्।

  • HTML DOM संरचनामा, तिनीहरूले टेम्प्लेटहरू प्रस्तुत गर्न सक्छन्।
  • तिनीहरूले आफ्नो अभिभावक कम्पोनेन्टहरूबाट इनपुटहरू र आउटपुट डेटा आउटपुटहरू मार्फत डेटा प्राप्त गर्न सक्छन्।
  • तिनीहरूले धेरै प्रकारका परिस्थितिहरूमा प्रतिक्रिया दिन सक्छन्।
  • तिनीहरू खुद्रा विक्रेता वा सेवाहरूसँग कुराकानी गर्न सक्छन्।
  • तिनीहरूले डाटा बाँध्न र प्रयोगकर्ताको लागि सम्पादन योग्य बनाउन सक्छन्।

TestBed सेटअप गर्नुहोस्

Angular ले परीक्षणको लागि TestBed प्रस्ताव गर्दछ, जसले कम्पोनेन्ट र सेवाहरू सजिलै प्रमाणित र प्रमाणित गर्न सकिने वातावरण स्थापना गर्दछ। यो एक मानक Angular मोड्युल जस्तै छ, र सबै भनिएको सुविधाहरू संकलित छन्। प्रत्येक परीक्षणमा कोड नक्कल गर्नबाट जोगिनको लागि beforeEach विधि प्रयोग गर्नुहोस्।

DOM परीक्षण गर्दै

अधिकांश समय, कम्पोनेन्ट प्रकार्यहरूले टेम्प्लेट प्रतिबिम्बित तर्क लागू गर्दछ। DebugElement को क्वेरी र queryAll विधिहरू प्रयोग गरेर, हामी DOM रूखमा पहुँच प्राप्त गर्न सक्छौं:

  • क्वेरीले मापदण्ड अनुरूप पहिलो तत्व फर्काउँछ।
  • queryAll ले मिल्दो प्रविष्टिहरूको एर्रे फर्काउँछ 

घटना ह्यान्डलरहरूलाई ट्रिगर गर्दै

त्यहाँ परीक्षणको लागि दुई विकल्पहरू छन्। पहिलो विकल्प भनेको सीधा प्रकार्य कार्यान्वयन गर्नु हो, जबकि दोस्रो विकल्प, जुन सिफारिस गरिएको छ, त्यो बटनमा क्लिक लागू गर्नु हो। DebugElement को ट्रिगर घटना ह्यान्डलर गुण प्रयोग गर्न यो सरल बनाउँछ। यसले दुईवटा तर्कहरू समावेश गर्दछ: घटनाको नाम र यसको विशेषताहरू।

कोणीय एकाइ परीक्षणका लागि उपकरणहरू

चमेली: Jasmine परीक्षण फ्रेमवर्क जाभास्क्रिप्ट कोड परीक्षण गर्न प्रयोग गर्न सकिन्छ। विशेष गरी, यो BDD (व्यवहार-संचालित विकास) को लागि एक रूपरेखा हो। यसको सीधा सिन्ट्याक्स र यो DOM आवश्यक पर्दैन वा अन्य फ्रेमवर्कहरूमा भर पर्दैन भन्ने तथ्यको कारण, Jasmine लाई बाकसको बाहिर प्रयोग गर्न सजिलो छ। Jasmine पूर्वनिर्धारित परीक्षण फ्रेमवर्क हो जुन Angular manual सिफारिस गर्दछ। Angular CLI ले स्वचालित रूपमा Jasmine कन्फिगर गर्दछ, त्यसैले तपाइँ यसलाई व्यक्तिगत रूपमा स्थापना गर्न आवश्यक छैन।

कर्म: Angular को पूर्वनिर्धारित परीक्षण फ्रेमवर्क कर्मा हो। AngularJs टोलीले यसलाई विकसित गर्यो किनभने उनीहरूलाई कठिनाइ थियो कोणीय परीक्षण समयमा उपलब्ध उपकरणहरू प्रयोग गर्दै। कर्माले तपाइँलाई तपाइँको एपहरू वास्तविक वेब ब्राउजरहरू र उपकरणहरू, जस्तै ट्याब्लेट र मोबाइल फोनहरूमा परीक्षण गर्न सक्षम बनाउँछ। यो पनि धेरै अनुकूलनीय छ किनकि यो अन्य परीक्षण फ्रेमवर्क संग उपयुक्त छ। Angular को पूर्वनिर्धारित ढाँचा Jasmine हो (जसलाई हामी एक क्षणमा छलफल गर्नेछौं), तर तपाईले यसलाई Mocha, QUnit, वा अन्यसँग परिवर्तन गर्न सक्नुहुन्छ। थप रूपमा, Travis, Jenkins, CircleCI, र Semaphore जस्ता निरन्तर एकीकरण प्रणालीहरूसँग एकीकरण सरल छ।

प्रोटेक्टर: प्रोट्रेक्टर एङ्गुलर एपहरूको लागि अन्त्य-देखि-अन्त परीक्षण उपकरण हो। यसले तपाइँको परीक्षणहरू वास्तविक ब्राउजरमा कार्यान्वयन गर्दछ र तपाइँको अनुप्रयोगसँग प्रयोगकर्ताको अन्तरक्रियालाई नक्कल गर्दछ।

कोणीय CLI: Angular CLI (कमांड लाइन इन्टरफेस) एक उपकरण हो जुन Angular अनुप्रयोगहरू निर्माण, विकास र परीक्षण गर्न प्रयोग गर्न सकिन्छ।

कोणीय एकाइ परीक्षण उत्तम अभ्यासहरू

कोणीय एकाइ परीक्षण प्रदर्शन गर्दा पालना गर्न यहाँ केहि चीजहरू छन्:

  • परीक्षणहरू छिटो र सीधा हुनुपर्छ, परीक्षण केसहरू छिटो कार्यान्वयन गर्न आवश्यक छ किनभने यसले एकाइ परीक्षणको उद्देश्य पूरा गर्दछ। यदि कोणात्मक परीक्षण केसहरू धेरै सुस्त छन् भने, विकासकर्ताहरूले उनीहरूलाई जति पटक लागू गर्ने छैनन् - यसबाहेक, एकाइ परीक्षण केसहरू जति सीधा हुन्छन्, परीक्षण निष्कर्षहरू त्यति नै सटीक हुन्छन्।
  • परीक्षण केसहरूले कार्यान्वयनको तर्क दोहोर्याउनु हुँदैन।
  • प्राकृतिक उत्पादन सेटिङहरू (वास्तविक, काम गर्ने उपकरणहरू) को जोखिम बिना परीक्षण निष्कर्षहरू न त भविष्यवाणी गर्न सकिन्छ वा सटीक हुनेछैन। परीक्षण केसहरूको व्यवहार निश्चित हुनुपर्दछ जबसम्म तिनीहरूको कोड स्थिर रहन्छ। परीक्षणहरू निश्चित रहनका लागि, गुणस्तर आश्वासन कर्मचारीहरूले तिनीहरूलाई वास्तविक ब्राउजर र उपकरणहरूमा सञ्चालन गर्नुपर्छ, इमुलेटरहरू र सिमुलेटरहरूमा होइन।
  • कुनै पनि बाह्य निर्भरताहरू हटाउँदै, स्यान्डबक्स गरिएको वातावरणमा लगातार एकाइ परीक्षणहरू कार्यान्वयन गर्नुहोस्।
  • सेवा निर्भरता परीक्षण गर्दा Jasmine फ्रेमवर्कबाट जासूसहरू प्रयोग गर्नुहोस्।
  • कम्पोनेन्टहरू परीक्षण गर्दा, नेटिभ एलिमेन्टको सट्टा debugElement (जसले प्राथमिक रनटाइम वातावरणको लागि एब्स्ट्र्याक्शन प्रदान गर्दछ) प्रयोग गरेर DOM पहुँच गर्न राम्रो हुन्छ।
  • यदि तपाइँको एप सर्भरमा छ भने, queryselector को सट्टा By.css प्रयोग गर्नुहोस् किनभने पछिल्लो ब्राउजर मात्र हो।
  • सुनिश्चित गर्नुहोस् कि कम्तिमा 80 प्रतिशत कोड कभर गरिएको छ।
  • परीक्षण केसहरूको लागि एक कुशल नामकरण योजना लागू गर्नुहोस्

निष्कर्ष

एकाइ परीक्षण स्वचालित परीक्षणको आवश्यक रूप हो; कतिपय विज्ञहरूले यो सबैभन्दा अत्यावश्यक भएको तर्क पनि गर्छन्। यो जाभास्क्रिप्ट सहित सबै प्रोग्रामिङ भाषाहरू र प्लेटफर्महरूको लागि खडा छ। चाहे तपाइँ ब्याकइन्डमा JavaScript प्रयोग गर्दै हुनुहुन्छ, एक फ्रन्ट-एन्ड फ्रेमवर्क, वा भेनिला JavaScript लेख्न, एकाइ परीक्षण आवश्यक छ।

त्यहाँ प्रत्येक प्रकारको परीक्षणको लागि धेरै उपकरणहरू उपलब्ध छन्। HeadSpin जस्ता ग्याजेट छनौट गर्नुहोस्, जसले सबै भन्दा धेरै फाइदाहरू प्रदान गर्दछ र हरेक प्रकारको परीक्षणको लागि तपाइँको बजेट पूरा गर्दछ।

लेखक बारे 

Kyrie Mattos


email "ईमेल": "ईमेल ठेगाना अवैध", "url": "वेबसाइट ठेगाना अवैध", "आवाश्यक": "आवश्यक फिल्ड हराइरहेको छ"}