JavaScript டெவலப்பர்களுக்கான Jest டெஸ்டிங் வழிகாட்டி
டெஸ்டிங் (Testing) பிழைகளை (bugs) ஆரம்பத்திலேயே கண்டறிய உதவுகிறது. இது குறியீட்டின் (code) தரத்தை மேம்படுத்துகிறது. பழைய குறியீட்டைப் பாதிக்காமல் புதிய அம்சங்களை (features) வெளியிட இது அனுமதிக்கிறது.
Jest என்பது JavaScript மற்றும் Node.js க்கான ஒரு பிரபலமான டெஸ்டிங் கருவியாகும். இதை Meta உருவாக்கியது. இது TypeScript, React, Next.js மற்றும் Express.js ஆகியவற்றுடன் இணைந்து செயல்படும்.
ஏன் Jest-ஐ பயன்படுத்த வேண்டும்?
- இதற்கு மிகக் குறைந்த அமைப்புகளே (setup) தேவைப்படும்.
- வேகத்திற்காக டெஸ்ட்களை இணையாக (parallel) இயக்குகிறது.
- இதில் mocking கருவிகள் உள்ளன.
- இது code coverage அறிக்கைகளைக் காட்டுகிறது.
- இது தெளிவான பிழைச் செய்திகளை வழங்குகிறது.
Jest-ஐ எவ்வாறு அமைப்பது:
- ஒரு Node.js திட்டத்தை உருவாக்கவும்:
npm init -y - Jest-ஐ நிறுவவும்:
npm install --save-dev jest - "test": "jest" என்பதைச் சேர்க்க package.json ஸ்கிரிப்ட்களைப் புதுப்பிக்கவும்
npm testமூலம் டெஸ்ட்களை இயக்கவும்
ஒரு எளிய டெஸ்ட்டை எழுதுதல்:
sum.js-ஐ உருவாக்கவும்: function sum(a, b) { return a + b; } module.exports = sum;
sum.test.js-ஐ உருவாக்கவும்: const sum = require("./sum"); test("adds two numbers", () => { expect(sum(2, 3)).toBe(5); });
அத்தியாவசிய Jest கருவிகள்:
- Assertions: மதிப்புகளைச் சரிபார்க்க
expect()மற்றும்toBe()ஆகியவற்றைப் பயன்படுத்தவும். - Objects: ஆப்ஜெக்ட்கள் (objects) அல்லது அரேக்களை (arrays) ஒப்பிட
toEqual()பயன்படுத்தவும். - Organization: தொடர்புடைய டெஸ்ட்களைக் குழுவாக்க
describe()பயன்படுத்தவும். - Async: Jest,
awaitமூலம் async செயல்பாடுகளை இயல்பாகவே கையாளுகிறது. - Mocks: செயல்பாடுகளைப் பிரதிபலிக்க (simulate)
jest.fn()பயன்படுத்தவும். இது உண்மையான API அழைப்புகள் அல்லது தரவுத்தளத் தொடர்புகளைத் தவிர்ப்பதன் மூலம் டெஸ்ட்களை வேகமாகவும் வைத்திருக்கும். - Hooks: டெஸ்ட் தரவை அமைக்க அல்லது சுத்தம் செய்ய
beforeEach()மற்றும்afterEach()ஆகியவற்றைப் பயன்படுத்தவும்.
உங்கள் வெற்றியை அளவிடுங்கள்:
உங்கள் coverage அறிக்கையைப் பார்க்க npx jest --coverage என்பதை இயக்கவும். உங்கள் குறியீட்டின் எந்தப் பகுதிகளில் டெஸ்ட்கள் இல்லை என்பதை இது காட்டும்.
API-களை டெஸ்ட் செய்தல்:
API எண்ட்பாயிண்ட்களை (endpoints) டெஸ்ட் செய்ய Supertest-ஐப் பயன்படுத்தவும். உண்மையான சர்வரைத் தொடங்காமலேயே நீங்கள் ஸ்டேட்டஸ் கோடுகளைச் (status codes) சரிபார்க்க முடியும்.
Snapshot Testing:
React-இல் matchSnapshot() பயன்படுத்தவும். இது தற்போதைய ரெண்டர்களை (renders) சேமிக்கப்பட்ட பதிப்புகளுடன் ஒப்பிடுவதன் மூலம் எதிர்பாராத UI மாற்றங்களைக் கண்டறிய உதவுகிறது.
சிறந்த நடைமுறைகள்:
- முடிவுகளை விவரிக்கும் வகையில் டெஸ்ட்களை எழுதவும்.
- உட்புற குறியீட்டு அமைப்பை (internal code structure) டெஸ்ட் செய்வதைத் தவிர்க்கவும்.
- யூனிட் டெஸ்ட்களில் (unit tests) உண்மையான தரவுத்தளங்களைப் பயன்படுத்துவதைத் தவிர்க்கவும்.
- அர்த்தமுள்ள கவரேஜில் (meaningful coverage) கவனம் செலுத்துங்கள்.
Jest-இல் தேர்ச்சி பெறுவது நம்பகமான மென்பொருட்களை உருவாக்க உங்களுக்கு உதவும்.