ஒவ்வொரு அம்சத்தையும் (ஒரு யூனிட் என்றும் அழைக்கப்படுகிறது) சோதிப்பது, திட்டத்தில் உள்ள ஒவ்வொரு செயல்பாடும் திட்டமிட்டபடி செயல்படுவதை உறுதிசெய்ய மிகவும் முக்கியமானது. சோதனையில், ஒரு குறிப்பிட்ட திறன் மற்றும் ஒரு முழு நிரல் இறுதி முதல் இறுதி வரை மதிப்பிடுவது மிகவும் வித்தியாசமானது. இந்த கட்டத்தில் அலகு சோதனை செயல்பாட்டுக்கு வருகிறது.
கோணமானது ஒரு திறந்த மூல, டைப்ஸ்கிரிப்ட் அடிப்படையிலான ஜாவாஸ்கிரிப்ட் கட்டமைப்பாகும். ஜாவாஸ்கிரிப்ட் என்பது ஆன்லைன் பயன்பாடுகளை உருவாக்கப் பயன்படும் சக்திவாய்ந்த நிரலாக்க மொழி என்பதால், ஜாவாஸ்கிரிப்ட்டில் யூனிட் டெஸ்டிங் செய்வது எப்படி என்பதைப் புரிந்துகொள்வது அவசியம். இந்த சோதனைகளை எவ்வாறு நடத்துவது, எதைப் பயன்படுத்துவது மற்றும் ஏன் என்பதை இந்தக் கட்டுரை ஆராயும்.
கோணல் என்றால் என்ன?
நவீன வலைத்தளங்கள் கணினி மொழியான JavaScript (JS) ஐப் பயன்படுத்துகின்றன, இது நுகர்வோருக்குத் தெரிந்த பல ஊடாடும் கூறுகளை வழங்குகிறது. வெப் டெவலப்பர்கள் பெரும்பாலும் கிளையன்ட் பக்க ஜாவாஸ்கிரிப்ட் ஃப்ரேம்வொர்க்குகளை செயல்பாட்டிற்காகவும், இணையதளங்கள் மற்றும் ஆன்லைன் சொத்துக்களை சரியாகச் செயல்பட வைப்பதற்காகவும் சார்ந்துள்ளனர்.
கோணல் என்பது ஒரு வலை பயன்பாட்டை உருவாக்குவதற்கான வழிமுறைகளை வழங்கும் ஒரு தொழில்நுட்பம், வடிவமைப்பில் உதவுகிறது மற்றும் அடிப்படைக் குறியீட்டை ஒழுங்கமைக்கிறது. 2010 இல், கூகிள் AngularJS எனப்படும் JavaScript கட்டமைப்பை வெளியிட்டது. டெவலப்பர்கள் பணக்கார, ஒற்றைப் பக்க பயன்பாடுகளை உருவாக்குவதற்கு உதவும் அம்சம் இதில் உள்ளது. AngularJS இன் அடுத்தடுத்த பதிப்புகளின் பெயர் கோணமாக சுருக்கப்பட்டது.
பயன்பாடுகளை உருவாக்க குறிப்பிடத்தக்க நிறுவனங்கள் கோணத்தைப் பயன்படுத்துகின்றன, அவற்றில் பல முக்கிய பிராண்டுகளாக மாறியுள்ளன. போன்ற-
- ஜிமெயில்
- யூடியூப் டிவி
- பேபால்
- Wix WebApps
- மைக்ரோசாப்ட் வலை
- Upwork
- பகுதி நேர பணியாளர்
கோண பயன்பாடுகளை ஏன் சோதிக்க வேண்டும்?
செயல்பாட்டின் மூலம் ஒரு கோணக் குறியீட்டுத் தளச் செயல்பாட்டைச் சரிபார்ப்பது, குறியீட்டுத் தரத்தை மேம்படுத்துவதற்கும், உற்பத்தியில் குறைவான குறைபாடுகள் மற்றும் குறைவான குறியீடுகளைக் கொண்டிருப்பதற்கும், பராமரிப்புச் செலவுகளைக் குறைப்பதற்கும், விரைவான மறுசீரமைப்பு மற்றும் மேம்படுத்தல்கள் முழு அமைப்பையும் சேதப்படுத்தாமல் செய்வதற்கும் மிகவும் பயனுள்ள அணுகுமுறையாகும்.
ஆரம்பத்தில், இது மெதுவாகத் தோன்றலாம், ஆனால் நீண்ட காலத்திற்கு அது செலுத்துகிறது. வளர்ச்சி செயல்முறை முழுவதும், பிழைகள் அடையாளம் காணப்பட்டு சரி செய்யப்படுகின்றன. பிழைத்திருத்தத்திற்கான செயல்முறை மேம்படுத்தப்பட்டுள்ளது. ஒரு குறிப்பிட்ட சோதனை தோல்வியுற்றால், திட்டமிட்டபடி செயல்படாததைத் துல்லியமாகக் கண்டறிவது எளிது. மேலும் சோதனை சார்ந்த மேம்பாடு மற்றும் யூனிட் சோதனை, குறிப்பாக, மிகவும் சிக்கலானதாகத் தோன்றினாலும், புதியதை மேம்படுத்துகிறது சோதனை ஆட்டோமேஷன் தளங்கள் சிறந்த நடைமுறைகள் முழு செயல்முறையையும் கணிசமாக எளிதாக்கலாம் மற்றும் தானியங்குபடுத்தலாம்.
அலகு சோதனை என்றால் என்ன?
அலகு சோதனை என்பது தானியங்கு சோதனை முறைகளில் ஒன்றாகும். யூனிட் சோதனைகள் ஒரு பயன்பாட்டின் சிறிய பகுதிகளை மொத்தமாக தனிமைப்படுத்தி, அவற்றின் உண்மையான நடத்தையை நோக்கம் கொண்ட நடத்தையுடன் ஒப்பிடுகின்றன. "முழு தனிமைப்படுத்தல்" என்ற சொற்றொடர் அலகு-சோதனை கோண பயன்பாடுகள் தரவுத்தளங்கள், கோப்பு முறைமை அல்லது HTTP சேவைகள் போன்ற வெளிப்புற சார்புகளுடன் இணைக்கப்படவில்லை என்ற உண்மையைக் குறிக்கிறது. இது யூனிட் சோதனைகளை மிகவும் நம்பகமானதாகவும் விரைவாகவும் செயல்படுத்துகிறது, ஏனெனில் அவை வெளிப்புற சேவைகளில் உள்ள சிக்கல்களால் தோல்வியடையாது.
அலகு சோதனைகள் குறியீட்டைப் பயன்படுத்தி தயாரிக்கப்படுகின்றன. யூனிட் சோதனைகள் சிறிய பிரிவுகளுடன் தொடர்புகொள்வதன் மூலம் உங்கள் விண்ணப்பத்தை செயல்படுத்தும் சிறிய நிரல்களாக நீங்கள் நினைக்கலாம். ஒவ்வொரு அலகு சோதனையும் ஒரு குறிப்பிட்ட சூழ்நிலையில் ஒரு அலகு எவ்வாறு செயல்படுகிறது என்பதை விவரிப்பது அல்லது விளக்குவது போன்றது. சோதனைகளின் தொகுப்பை நடத்துவதன் மூலம், கோட்பேஸை மாற்றிய பின் டெவலப்பர்கள் உடனடி கருத்துக்களைப் பெறலாம்.
நீங்கள் ஏன் கோண அலகு சோதனை செய்ய வேண்டும்?
பொதுவாக, டெவலப்பர்கள் முதலில் யூனிட் சோதனைகளை உருவாக்குகிறார்கள், அதைத் தொடர்ந்து உண்மையான நிரல் குறியீடு. சோதனை-உந்துதல் மேம்பாடு இந்த முறையை விவரிக்கிறது (TDD). TDD இல், தேவைகள் குறிப்பிட்ட சோதனை நிகழ்வுகளாக மாற்றப்படுகின்றன, மேலும் புதிய கோண சோதனைகளில் தேர்ச்சி பெற நிரல் மேம்படுத்தப்பட்டது. யூனிட் சோதனைகள் மற்ற யூனிட்கள் அல்லது நிரலின் செயல்பாட்டை பாதிக்காமல் குறியீட்டை மாற்ற அனுமதிக்கின்றன. டெவலப்பர்கள் இந்தக் கட்டத்தில் தவறுகளைக் கண்டறிவதை மிகவும் எளிமையாகச் செய்வதன் மூலம் இது வளங்களைச் சேமிக்கிறது.
கூடுதலாக, யூனிட் சோதனை சூழல்களுக்குள், ஒரு பொருளின் தொகுதிகள் ஒன்றிலிருந்து மற்றொன்று பிரிக்கப்பட்டு, அவற்றின் பொறுப்புப் பகுதியைக் கொண்டுள்ளன. இந்தச் சூழ்நிலையில், சோதனை மிகவும் நம்பகமானது, ஏனெனில் அவை ஒரு வரையறுக்கப்பட்ட அமைப்பில் நடத்தப்படுகின்றன. இந்த நிலைத்தன்மையின் காரணமாக, குறியீடு நம்பகமானதாகவும் மாறும்.
மேலே குறிப்பிட்டுள்ள உண்மைகளுடன், அலகு சோதனையின் பல நன்மைகளை ஆராய்வோம்.
- அலகு சோதனைகள் விரைவில் சிக்கல்களைக் கண்டறிந்து தீர்க்க உதவுகின்றன. மென்பொருளின் வாழ்நாளில் யூனிட் சோதனையை தங்கள் மேம்பாட்டுச் செயல்பாட்டில் செயல்படுத்தி, சோதனையை தொடங்கும் நிறுவனங்கள், மென்பொருளின் வாழ்நாளில் விரைவில் சிக்கல்களைக் கண்டறிந்து சரிசெய்ய முடியும்.
- உங்கள் யூனிட் சோதனைத் தொகுப்பு டெவலப்பர்களுக்கான பாதுகாப்பு வலையாக செயல்படுகிறது. யூனிட் சோதனைகளின் முழுமையான தொகுப்பு டெவலப்பர்களுக்கு ஒரு பாதுகாப்பு வலையாக செயல்படலாம். சோதனைகளை அவ்வப்போது செயல்படுத்துவதன் மூலம், குறியீட்டில் அவர்கள் செய்த சமீபத்திய மாற்றங்கள் எதையும் சேதப்படுத்தவில்லை என்பதை உறுதிப்படுத்திக் கொள்ளலாம். வேறு வார்த்தைகளில் கூறுவதானால், அலகு சோதனைகள் பின்னடைவைத் தவிர்க்க உதவுகின்றன.
- குறியீட்டின் தரத்தை மேம்படுத்த அலகு சோதனைகள் உதவக்கூடும். இந்த உருப்படியானது முந்தைய கட்டுரையிலிருந்து இயல்பாகவே பின்பற்றப்படுகிறது. யூனிட் சோதனைகள் பாதுகாப்பு வலையாக செயல்படுவதால், குறியீட்டை மாற்றும் போது டெவலப்பர்கள் அதிக நம்பிக்கையுடன் உள்ளனர். அவர்கள் எதையும் உடைப்பதைப் பற்றி கவலைப்படாமல் குறியீட்டை மறுகட்டமைக்க முடியும், இது கோட்பேஸின் ஒட்டுமொத்த தரத்தை மேம்படுத்துகிறது.
- பயன்பாட்டு கட்டமைப்பை மேம்படுத்த அலகு சோதனை உதவும். கோட்பேஸில் யூனிட் சோதனைகளைச் சேர்ப்பது பெரும்பாலும் உயர்தர பயன்பாட்டு வடிவமைப்பைக் குறிக்கிறது. எனவே, சோதிக்கக்கூடிய குறியீட்டை உருவாக்க வேண்டிய அவசியம் மேம்பட்ட வடிவமைப்பை ஊக்குவிக்கும். இதனால்தான் TDD (சோதனையால் இயக்கப்படும் வளர்ச்சி) மிகவும் திறமையானது.
- அலகு சோதனைகளை ஆவணமாகப் பயன்படுத்தலாம். சோதனை செய்யப்பட்ட குறியீட்டை எவ்வாறு பயன்படுத்துவது என்பதற்கான எடுத்துக்காட்டுகளை அலகு சோதனைகள் வழங்குகின்றன. இதன் விளைவாக, நீங்கள் அவற்றை இயங்கக்கூடிய ஆவணங்கள் அல்லது விவரக்குறிப்புகள் என்றும் நினைக்கலாம்.
- உங்கள் குறியீட்டு தளத்தில் உள்ள குறியீட்டு வாசனையை அடையாளம் காணவும். ஒரு குறிப்பிட்ட குறியீட்டிற்கான யூனிட் சோதனைகளை உருவாக்குவதில் சிரமம் இருப்பது, மிகவும் சிக்கலான நடைமுறைகள் போன்ற குறியீட்டு வாசனையைக் குறிக்கிறது. கோட்பேஸில் யூனிட் சோதனைகள் சேர்க்கப்படும் எளிமை நேர்மறை குறிகாட்டியாக இருந்தால், உரையாடலும் உண்மைதான்.
கோண மற்றும் சோதனை கோண கூறுகளில் அலகு சோதனை நடத்துவது எப்படி
கூறுகளுக்கான சோதனைகளை வடிவமைக்கும் போது, இந்த நடத்தைகள் அனைத்தும் கருத்தில் கொள்ளப்படுவதை உறுதி செய்யவும்.
- HTML DOM கட்டமைப்பில், அவர்கள் டெம்ப்ளேட்களை வழங்க முடியும்.
- அவர்கள் தங்கள் பெற்றோர் கூறுகளிலிருந்து உள்ளீடுகள் மூலமாகவும், வெளியீடுகள் வழியாக வெளியீட்டுத் தரவைப் பெறலாம்.
- அவர்கள் பல்வேறு சூழ்நிலைகளுக்கு பதிலளிக்க முடியும்.
- அவர்கள் சில்லறை விற்பனையாளர்கள் அல்லது சேவைகளுடன் தொடர்பு கொள்ளலாம்.
- அவர்கள் தரவை பிணைத்து, பயனர் திருத்தக்கூடியதாக மாற்றலாம்.
TestBed ஐ அமைக்கவும்
Angular சோதனைக்கான TestBedஐ வழங்குகிறது, இது கூறுகள் மற்றும் சேவைகளை உடனடியாகச் சரிபார்த்து சரிபார்க்கக்கூடிய சூழலை உருவாக்குகிறது. இது ஒரு நிலையான கோண தொகுதி போன்றது, மேலும் கூறப்பட்ட அனைத்து அம்சங்களும் தொகுக்கப்பட்டுள்ளன. ஒவ்வொரு சோதனையிலும் குறியீட்டை நகலெடுப்பதைத் தவிர்க்க முந்தைய ஒவ்வொரு முறையைப் பயன்படுத்தவும்.
DOM ஐ சோதிக்கிறது
பெரும்பாலான நேரங்களில், கூறு செயல்பாடுகள் டெம்ப்ளேட்டை பிரதிபலிக்கும் தர்க்கத்தை செயல்படுத்துகின்றன. DebugElement இன் வினவல் மற்றும் வினவல் அனைத்து முறைகளையும் பயன்படுத்தி, DOM ட்ரீக்கான அணுகலைப் பெறலாம்:
- வினவல் ஒரு அளவுகோலுக்கு ஏற்ற முதல் உறுப்பை வழங்குகிறது.
- queryAll பொருந்திய உள்ளீடுகளின் வரிசையை வழங்குகிறது
நிகழ்வு நடத்துபவர்களைத் தூண்டுகிறது
சோதனைகளுக்கு இரண்டு விருப்பங்கள் உள்ளன. முதல் விருப்பம் செயல்பாட்டை நேரடியாக செயல்படுத்துவதாகும், அதே நேரத்தில் இரண்டாவது விருப்பம், பரிந்துரைக்கப்படும், அந்த பொத்தானைக் கிளிக் செய்வதாகும். DebugElement இன் தூண்டுதல் நிகழ்வு ஹேண்ட்லர் பண்பைப் பயன்படுத்துவது இதைச் செய்வதை எளிதாக்குகிறது. இது இரண்டு வாதங்களைக் கொண்டுள்ளது: நிகழ்வின் பெயர் மற்றும் அதன் பண்புகள்.
கோண அலகு சோதனைக்கான கருவிகள்
மல்லிகை: ஜாவாஸ்கிரிப்ட் குறியீட்டைச் சோதிக்க ஜாஸ்மின் சோதனை கட்டமைப்பைப் பயன்படுத்தலாம். குறிப்பாக, இது BDDக்கான ஒரு கட்டமைப்பாகும் (நடத்தை-உந்துதல் மேம்பாடு). அதன் நேரடியான தொடரியல் மற்றும் அதற்கு DOM தேவையில்லை அல்லது பிற கட்டமைப்புகளில் தங்கியிருக்கவில்லை என்பதாலும், ஜாஸ்மின் பெட்டிக்கு வெளியே பயன்படுத்த எளிதானது. மல்லிகை என்பது கோண கையேடு பரிந்துரைக்கும் இயல்புநிலை சோதனை கட்டமைப்பாகும். கோண சிஎல்ஐ தானாகவே ஜாஸ்மினை உள்ளமைக்கிறது, எனவே நீங்கள் அதை தனித்தனியாக நிறுவ வேண்டியதில்லை.
கர்மா: கோணத்தின் இயல்புநிலை சோதனை கட்டமைப்பு கர்மா ஆகும். AngularJs குழு அதை உருவாக்கியது, ஏனெனில் அவர்களுக்கு சிரமம் இருந்தது கோண சோதனை அந்த நேரத்தில் கிடைக்கும் கருவிகளைப் பயன்படுத்தி. டேப்லெட்டுகள் மற்றும் மொபைல் போன்கள் போன்ற உண்மையான இணைய உலாவிகள் மற்றும் சாதனங்களில் உங்கள் பயன்பாடுகளை சோதிக்க கர்மா உங்களுக்கு உதவுகிறது. இது மற்ற சோதனை கட்டமைப்புகளுடன் இணக்கமாக இருப்பதால் மிகவும் மாற்றியமைக்கக்கூடியது. Angular இன் இயல்புநிலை கட்டமைப்பானது Jasmine (இதை நாங்கள் சிறிது நேரத்தில் விவாதிப்போம்), ஆனால் நீங்கள் அதை Mocha, QUnit அல்லது பிறவற்றைக் கொண்டு மாற்றலாம். கூடுதலாக, டிராவிஸ், ஜென்கின்ஸ், சர்க்கிள்சிஐ மற்றும் செமாஃபோர் போன்ற தொடர்ச்சியான ஒருங்கிணைப்பு அமைப்புகளுடன் ஒருங்கிணைப்பது எளிது.
பாதுகாவலர்: ப்ரோட்ராக்டர் என்பது கோணப் பயன்பாடுகளுக்கான இறுதி முதல் இறுதி வரையிலான சோதனைக் கருவியாகும். இது உங்கள் சோதனைகளை உண்மையான உலாவியில் செயல்படுத்துகிறது மற்றும் உங்கள் பயன்பாட்டுடன் பயனரின் தொடர்புகளை பிரதிபலிக்கிறது.
கோண CLI: கோண சிஎல்ஐ (கமாண்ட் லைன் இன்டர்ஃபேஸ்) என்பது கோண பயன்பாடுகளை உருவாக்க, உருவாக்க மற்றும் சோதிக்க பயன்படும் ஒரு கருவியாகும்.
கோண அலகு சோதனை சிறந்த நடைமுறைகள்
கோண அலகு சோதனையைச் செய்யும்போது பின்பற்ற வேண்டிய சில விஷயங்கள் இங்கே:
- சோதனைகள் விரைவாகவும் நேரடியானதாகவும் இருக்க வேண்டும், இது யூனிட் சோதனையின் நோக்கத்தை பூர்த்தி செய்வதால், சோதனை வழக்குகள் விரைவாக செயல்படுத்தப்பட வேண்டும். கோண சோதனை வழக்குகள் மிகவும் மந்தமாக இருந்தால், டெவலப்பர்கள் அவற்றை அடிக்கடி செயல்படுத்த மாட்டார்கள்-மேலும், அலகு சோதனை வழக்குகள் மிகவும் நேரடியானவை, சோதனை கண்டுபிடிப்புகள் மிகவும் துல்லியமாக இருக்கும்.
- சோதனை வழக்குகள் செயல்படுத்தலின் தர்க்கத்தை மீண்டும் செய்யக்கூடாது.
- இயற்கையான உற்பத்தி அமைப்புகளுக்கு (உண்மையான, வேலை செய்யும் சாதனங்கள்) வெளிப்பாடு இல்லாமல் சோதனை கண்டுபிடிப்புகள் கணிக்கக்கூடியதாகவோ அல்லது துல்லியமாகவோ இருக்காது. சோதனை வழக்குகளின் நடத்தை, அவற்றின் குறியீடு மாறாமல் இருக்கும் வரை தீர்மானிக்கக்கூடியதாக இருக்க வேண்டும். சோதனைகள் உறுதியானதாக இருக்க, தர உத்தரவாத பணியாளர்கள் அவற்றை உண்மையான உலாவிகள் மற்றும் சாதனங்களில் நடத்த வேண்டும், முன்மாதிரிகள் மற்றும் சிமுலேட்டர்கள் அல்ல.
- சாண்ட்பாக்ஸ் செய்யப்பட்ட சூழலில் யூனிட் சோதனைகளை தொடர்ந்து செயல்படுத்தவும், வெளிப்புற சார்புகளை நீக்கவும்.
- சேவை சார்புகளை சோதிக்கும் போது ஜாஸ்மின் கட்டமைப்பிலிருந்து உளவாளிகளைப் பயன்படுத்தவும்.
- கூறுகளைச் சோதிக்கும் போது, நேட்டிவ் உறுப்பைக் காட்டிலும் debugElement (முதன்மை இயக்க நேர சூழலுக்கு ஒரு சுருக்கத்தை வழங்குகிறது) பயன்படுத்தி DOM ஐ அணுகுவது விரும்பத்தக்கது.
- உங்கள் ஆப்ஸ் சர்வரில் இருந்தால், வினவல் தேர்விக்குப் பதிலாக By.css ஐப் பயன்படுத்தவும், ஏனெனில் பிந்தையது உலாவிக்கு மட்டுமே.
- குறைந்தபட்சம் 80 சதவீத குறியீடு உள்ளடக்கப்பட்டிருப்பதை உறுதிசெய்யவும்.
- சோதனை நிகழ்வுகளுக்கு திறமையான பெயரிடும் திட்டத்தை செயல்படுத்தவும்
தீர்மானம்
அலகு சோதனை என்பது தானியங்கு சோதனையின் அவசியமான வடிவம்; சில வல்லுநர்கள் இது மிகவும் முக்கியமானது என்று கூட வாதிடுகின்றனர். இது ஜாவாஸ்கிரிப்ட் உட்பட அனைத்து நிரலாக்க மொழிகள் மற்றும் இயங்குதளங்களைக் குறிக்கிறது. நீங்கள் பின்தளத்தில் ஜாவாஸ்கிரிப்டைப் பயன்படுத்தினாலும், முன்-இறுதி கட்டமைப்பாக இருந்தாலும் அல்லது வெண்ணிலா ஜாவாஸ்கிரிப்டை எழுதினாலும், யூனிட் சோதனை தேவை.
ஒவ்வொரு வகையான சோதனைக்கும் பல கருவிகள் உள்ளன. HeadSpin போன்ற கேஜெட்டைத் தேர்வுசெய்யவும், இது அதிக நன்மைகளை வழங்குகிறது மற்றும் ஒவ்வொரு வகையான சோதனைக்கும் உங்கள் பட்ஜெட்டைப் பூர்த்தி செய்கிறது.