Mocha, Chai ব্যবহার করে KoaJS অ্যাপ্লিকেশন টেস্ট করা

KoaJS এর Testing এবং Debugging - কোআজেএস (KoaJS) - Web Development

285

Mocha এবং Chai হল দুটি জনপ্রিয় টেস্টিং লাইব্রেরি যা Node.js অ্যাপ্লিকেশন টেস্টিংয়ের জন্য ব্যবহৃত হয়। Mocha হল একটি টেস্ট ফ্রেমওয়ার্ক এবং Chai হল একটি assertion লাইব্রেরি যা টেস্টের ফলাফল যাচাই করতে ব্যবহৃত হয়। KoaJS অ্যাপ্লিকেশনগুলোর জন্য এই দুটি টুল ব্যবহার করে আপনি সহজে unit test, integration test, এবং functional test করতে পারেন।

এই টিউটোরিয়ালে, আমরা দেখব কিভাবে Mocha এবং Chai ব্যবহার করে KoaJS অ্যাপ্লিকেশন টেস্ট করা যায়।


১. Mocha এবং Chai ইনস্টল করা

প্রথমে Mocha এবং Chai প্যাকেজগুলো ইনস্টল করতে হবে।

npm install mocha chai supertest --save-dev
  • Mocha: টেস্ট ফ্রেমওয়ার্ক
  • Chai: assertion লাইব্রেরি
  • Supertest: HTTP assertions এবং API টেস্টিংয়ের জন্য ব্যবহৃত হয় (KoaJS অ্যাপ্লিকেশনের জন্য HTTP রিকোয়েস্ট পাঠানোর জন্য)

২. KoaJS অ্যাপ্লিকেশন তৈরি করা

এখন, একটি সাধারণ KoaJS অ্যাপ্লিকেশন তৈরি করা যাক, যার জন্য আমরা টেস্ট লিখব।

const Koa = require('koa');
const Router = require('koa-router');

const app = new Koa();
const router = new Router();

router.get('/hello', async (ctx) => {
  ctx.body = { message: 'Hello, World!' };
});

app.use(router.routes()).use(router.allowedMethods());

app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

module.exports = app;  // অ্যাপ্লিকেশনকে এক্সপোর্ট করা

এখানে, আমরা একটি /hello রাউট তৈরি করেছি, যা { message: 'Hello, World!' } রিটার্ন করে।


৩. Mocha এবং Chai দিয়ে KoaJS অ্যাপ্লিকেশন টেস্ট করা

এখন, Mocha এবং Chai ব্যবহার করে KoaJS অ্যাপ্লিকেশনটির টেস্ট লিখব।

৩.১. Mocha টেস্ট কনফিগারেশন

টেস্ট ফাইল তৈরি করার জন্য সাধারণত test নামক একটি ডিরেক্টরি তৈরি করা হয় এবং সেখানে টেস্ট ফাইল রাখা হয়। উদাহরণস্বরূপ, test/app.test.js ফাইলটি তৈরি করা যেতে পারে।

const chai = require('chai');
const chaiHttp = require('chai-http');
const app = require('../app');  // KoaJS অ্যাপ্লিকেশন ইম্পোর্ট করা

chai.use(chaiHttp);

const { expect } = chai;

describe('KoaJS App', () => {
  it('should return "Hello, World!" on /hello GET route', (done) => {
    chai.request(app)
      .get('/hello')  // /hello রাউটে GET রিকোয়েস্ট পাঠানো
      .end((err, res) => {
        expect(res).to.have.status(200);  // রেসপন্স স্ট্যাটাস কোড 200 হওয়া উচিত
        expect(res.body).to.have.property('message').equal('Hello, World!');  // রেসপন্স বডি তে message থাকাটা নিশ্চিত করা
        done();
      });
  });
});

ব্যাখ্যা:

  • chai.request(app).get('/hello'): এই লাইনটি /hello রাউটে GET রিকোয়েস্ট পাঠাচ্ছে।
  • expect(res).to.have.status(200): রেসপন্সের স্ট্যাটাস কোড 200 হওয়া উচিত।
  • expect(res.body).to.have.property('message').equal('Hello, World!'): রেসপন্সের বডিতে message প্রপার্টি থাকতে হবে এবং তার মান 'Hello, World!' হওয়া উচিত।
  • done(): Mocha তে অ্যাসিনক্রোনাস টেস্টে done() কল করতে হয় যাতে টেস্টটি শেষ হওয়ার পর রিপোর্ট করা যায়।

৪. Mocha টেস্ট চালানো

এখন Mocha ব্যবহার করে টেস্ট চালানো যাবে। নিচের কমান্ডটি ব্যবহার করে Mocha টেস্ট রান করুন:

npx mocha test/app.test.js

এই কমান্ডটি test/app.test.js ফাইলটিতে লেখা টেস্ট চালাবে।

আউটপুট উদাহরণ:

  KoaJS App
    ✓ should return "Hello, World!" on /hello GET route


  1 passing (12ms)

এখানে, 1 passing দেখাচ্ছে যে টেস্ট সফলভাবে সম্পন্ন হয়েছে।


৫. Supertest এর মাধ্যমে HTTP Testing

Supertest হল একটি লাইব্রেরি যা HTTP রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়, বিশেষত API টেস্টিংয়ের জন্য। আপনি Supertest এর মাধ্যমে GET, POST, PUT, DELETE রিকোয়েস্ট পাঠিয়ে রেসপন্স চেক করতে পারেন।

৫.১. Supertest ব্যবহার করে টেস্ট লেখা

const request = require('supertest');
const app = require('../app');  // KoaJS অ্যাপ্লিকেশন ইম্পোর্ট করা

describe('KoaJS App with Supertest', () => {
  it('should return "Hello, World!" on /hello GET route', async () => {
    const res = await request(app).get('/hello');
    expect(res.status).toBe(200);  // রেসপন্স স্ট্যাটাস কোড 200 হওয়া উচিত
    expect(res.body.message).toBe('Hello, World!');  // রেসপন্স বডিতে message প্রপার্টি থাকতে হবে
  });
});

৫.২. Supertest টেস্ট চালানো

npx jest test/app.test.js

৬. Test Coverage (টেস্ট কাভারেজ)

Test Coverage হল একটি পরিমাপ যা জানায় আপনার টেস্ট সেট কতটুকু অ্যাপ্লিকেশন কোড কভার করেছে। আপনি nyc (Jest এর সাথে একত্রে ব্যবহৃত হয়) ব্যবহার করে টেস্ট কাভারেজ বের করতে পারেন।

৬.১. nyc ইনস্টল করা

npm install --save-dev nyc

৬.২. nyc কনফিগারেশন

package.json ফাইলে nyc কনফিগার করতে হবে:

"scripts": {
  "test": "nyc mocha"
}

এখন npm test কমান্ড ব্যবহার করে টেস্ট কাভারেজ দেখতে পারবেন।


সারাংশ

Mocha এবং Chai ব্যবহার করে KoaJS অ্যাপ্লিকেশন টেস্ট করা খুবই সহজ। Supertest লাইব্রেরি ব্যবহার করে আপনি HTTP রিকোয়েস্ট পাঠিয়ে API টেস্ট করতে পারেন। Mocha টেস্ট ফ্রেমওয়ার্ক এবং Chai assertion লাইব্রেরি কাস্টম টেস্ট স্ক্রিপ্ট তৈরি করতে সাহায্য করে এবং টেস্ট ফলাফল যাচাই করার জন্য শক্তিশালী পদ্ধতি প্রদান করে। Test Coverage টুলস ব্যবহার করে আপনি নিশ্চিত করতে পারবেন যে আপনার টেস্ট আপনার কোডের সব অংশ কভার করছে।

Content added By
Promotion

Are you sure to start over?

Loading...