Testing in Node.js (Jest / Supertest)
Testing in Node.js (Jest & Supertest)
Production-ready Node.js অ্যাপ্লিকেশন তৈরির জন্য Testing অত্যন্ত গুরুত্বপূর্ণ। এই টিউটোরিয়ালে আমরা Jest এবং Supertest ব্যবহার করে Unit Test ও API Test শিখবো।
🧪 Testing কেন প্রয়োজন?
- Bug দ্রুত ধরতে সাহায্য করে
- Code quality ও reliability বাড়ায়
- Production error কমায়
- Future update-এ confidence দেয়
🔹 Jest কী?
Jest হলো একটি জনপ্রিয় JavaScript Testing Framework যা মূলত Unit Test এবং Integration Test করার জন্য ব্যবহৃত হয়।
Developed by Facebook • Zero config • Fast & reliable
📦 Jest Install
npm install --save-dev jest
✍️ Jest দিয়ে Basic Unit Test
sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
sum.test.js
const sum = require('./sum');
test('adds 2 + 3 to equal 5', () => {
expect(sum(2, 3)).toBe(5);
});
🌐 Supertest কী?
Supertest মূলত Express.js বা অন্য Node.js API endpoint test করার জন্য ব্যবহৃত হয়।
📦 Supertest Install
npm install --save-dev supertest
🔗 API Testing (Jest + Supertest)
app.js
const express = require('express');
const app = express();
app.get('/api/health', (req, res) => {
res.status(200).json({ status: 'OK' });
});
module.exports = app;
app.test.js
const request = require('supertest');
const app = require('./app');
describe('GET /api/health', () => {
it('should return API status OK', async () => {
const res = await request(app).get('/api/health');
expect(res.statusCode).toBe(200);
expect(res.body.status).toBe('OK');
});
});
▶️ Test চালানোর কমান্ড
npx jest
✅ Testing Best Practices
- প্রতিটি feature-এর জন্য আলাদা test লিখুন
- Database call mock করুন
- Test file-এর নাম
*.test.jsরাখুন - CI/CD pipeline-এ test যুক্ত করুন
👼 Quiz
/