JavaScript ডেভেলপারদের জন্য Jest টেস্টিং গাইড
টেস্টিং আপনাকে দ্রুত বাগ (bug) খুঁজে পেতে সাহায্য করে। এটি কোডের মান উন্নত করে। এটি পুরনো কোড নষ্ট না করেই নতুন ফিচার রিলিজ করতে সাহায্য করে।
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 - "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: অবজেক্ট বা অ্যারে তুলনা করার জন্য
toEqual()ব্যবহার করুন। - Organization: সম্পর্কিত টেস্টগুলোকে গ্রুপ করতে
describe()ব্যবহার করুন। - Async: Jest
awaitব্যবহার করে খুব সহজেই async ফাংশন হ্যান্ডেল করতে পারে। - Mocks: ফাংশন সিমুলেট করতে
jest.fn()ব্যবহার করুন। এটি রিয়েল API কল বা ডাটাবেস হিট এড়িয়ে টেস্টকে দ্রুত রাখে। - Hooks: টেস্ট ডেটা সেটআপ বা ক্লিনআপ করার জন্য
beforeEach()এবংafterEach()ব্যবহার করুন।
আপনার সাফল্য পরিমাপ করুন:
আপনার কভারেজ রিপোর্ট দেখতে npx jest --coverage রান করুন। এটি দেখায় আপনার কোডের কোন অংশগুলোতে টেস্টের অভাব রয়েছে।
API টেস্টিং:
API এন্ডপয়েন্ট টেস্ট করতে Supertest ব্যবহার করুন। আপনি রিয়েল সার্ভার চালু না করেই স্ট্যাটাস কোড চেক করতে পারেন।
Snapshot Testing:
React-এ matchSnapshot() ব্যবহার করুন। এটি বর্তমান রেন্ডারকে সেভ করা ভার্সনের সাথে তুলনা করে অপ্রত্যাশিত UI পরিবর্তন খুঁজে পেতে সাহায্য করে।
সেরা অনুশীলনসমূহ (Best practices):
- এমন টেস্ট লিখুন যা ফলাফল (outcomes) বর্ণনা করে।
- ইন্টারনাল কোড স্ট্রাকচার টেস্ট করা এড়িয়ে চলুন।
- ইউনিট টেস্টে রিয়েল ডাটাবেস ব্যবহার করা থেকে বিরত থাকুন।
- অর্থবহ কভারেজের দিকে মনোযোগ দিন।
Jest-এ দক্ষতা অর্জন আপনাকে নির্ভরযোগ্য সফটওয়্যার তৈরি করতে সাহায্য করবে।