𝗝𝗲𝘀𝘁 𝗧𝗲𝘀𝘁𝗶𝗻𝗴 𝗚𝘂𝗶𝗱𝗲 𝗳𝗼𝗿 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿𝘀
ٹیسٹنگ آپ کو جلد از جلد بگ (bugs) تلاش کرنے میں مدد دیتی ہے۔ یہ کوڈ کے معیار کو بہتر بناتی ہے۔ یہ آپ کو پرانے کوڈ کو خراب کیے بغیر نئے فیچرز ریلیز کرنے کی اجازت دیتی ہے۔
Jest، JavaScript اور Node.js کے لیے ایک مقبول ٹیسٹنگ ٹول ہے۔ اسے Meta نے بنایا ہے۔ یہ TypeScript، React، Next.js اور Express.js کے ساتھ کام کرتا ہے۔
Jest کیوں استعمال کریں؟
- اس کے لیے بہت کم سیٹ اپ کی ضرورت ہوتی ہے۔
- یہ رفتار کے لیے ٹیسٹ کو متوازی (parallel) طور پر چلاتا ہے۔
- اس میں موکنگ (mocking) ٹولز شامل ہیں۔
- یہ کوڈ کوریج رپورٹس دکھاتا ہے۔
- یہ واضح ایرر میسجز فراہم کرتا ہے۔
Jest کو کیسے سیٹ اپ کریں:
- ایک Node.js پروجیکٹ بنائیں:
npm init -y - Jest انسٹال کریں:
npm install --save-dev jest package.jsonاسکرپٹس کو اپ ڈیٹ کریں تاکہ اس میں"test": "jest"شامل ہو سکے۔- ان ٹیسٹ کو چلانے کے لیے:
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: آبجیکٹس یا ایریز (arrays) کا موازنہ کرنے کے لیے
toEqual()کا استعمال کریں۔ - Organization: متعلقہ ٹیسٹ کو گروپ کرنے کے لیے
describe()کا استعمال کریں۔ - Async: Jest
awaitکا استعمال کرتے ہوئے async فنکشنز کو قدرتی طور پر ہینڈل کرتا ہے۔ - Mocks: فنکشنز کی نقل (simulate) کرنے کے لیے
jest.fn()کا استعمال کریں۔ یہ اصل API کالز یا ڈیٹا بیس ہٹس سے بچ کر ٹیسٹ کو تیز رکھتا ہے۔ - Hooks: ٹیسٹ ڈیٹا کو سیٹ اپ کرنے یا صاف کرنے کے لیے
beforeEach()اورafterEach()کا استعمال کریں۔
اپنی کامیابی کا اندازہ لگائیں:
اپنی کوریج رپورٹ دیکھنے کے لیے npx jest --coverage چلائیں۔ یہ دکھاتا ہے کہ آپ کے کوڈ کے کن حصوں میں ٹیسٹ کی کمی ہے۔
APIs کی ٹیسٹنگ:
API اینڈ پوائنٹس کو ٹیسٹ کرنے کے لیے Supertest کا استعمال کریں۔ آپ اصل سرور شروع کیے بغیر اسٹیٹس کوڈز چیک کر سکتے ہیں۔
Snapshot Testing:
React میں matchSnapshot() کا استعمال کریں۔ یہ موجودہ رینڈرز کا محفوظ شدہ ورژنز سے موازنہ کر کے غیر متوقع UI تبدیلیوں کو تلاش کرنے میں آپ کی مدد کرتا ہے۔
بہترین طریقے (Best practices):
- ایسے ٹیسٹ لکھیں جو نتائج (outcomes) کی وضاحت کریں۔
- کوڈ کے اندرونی ڈھانچے (internal structure) کو ٹیسٹ کرنے سے گریز کریں۔
- یونٹ ٹیسٹ میں اصل ڈیٹا بیس سے دور رہیں۔
- بامعنی کوریج پر توجہ دیں۔
Jest میں مہارت حاصل کرنا آپ کو قابل اعتماد سافٹ ویئر بنانے میں مدد دیتا ہے۔
ماخذ (Source): https://dev.to/synfinity-dynamics-pvt-ltd/jest-testing-a-complete-tutorial-for-javascript-and-nodejs-developers-1lmj