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
/

লোড হচ্ছে...