Unit Testing হল কোডের ছোট অংশগুলি পরীক্ষা করার প্রক্রিয়া, যাতে প্রতিটি ফাংশন বা মেথড সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করা যায়। Lodash এর মতো লাইব্রেরি ব্যবহার করার সময়ও unit testing অত্যন্ত গুরুত্বপূর্ণ, কারণ এর মাধ্যমে আপনি আপনার কোডের কার্যকারিতা এবং সঠিকতা নিশ্চিত করতে পারবেন। Lodash এর জন্য unit tests লেখার মাধ্যমে আপনি সহজেই নিশ্চিত করতে পারবেন যে আপনার কোড সঠিকভাবে কাজ করছে এবং ভবিষ্যতে কোডে কোনো পরিবর্তন করলে আগের ফাংশনালিটি ক্ষতিগ্রস্ত হবে না।
এখানে Lodash এর জন্য unit testing এবং test cases লেখার পদ্ধতি আলোচনা করা হলো।
১. Unit Testing এর জন্য প্রয়োজনীয় টুলস
Unit Testing এর জন্য কয়েকটি জনপ্রিয় টুলস রয়েছে, যা Lodash ফাংশনগুলির সঠিকতা পরীক্ষা করার জন্য ব্যবহার করা যায়:
- Mocha: JavaScript এর জন্য একটি টেস্ট ফ্রেমওয়ার্ক যা সহজেই ব্যবহার করা যায়।
- Chai: Assertion লাইব্রেরি, যা Mocha এর সাথে একসাথে কাজ করে এবং টেস্টগুলোতে assertion তৈরি করতে সাহায্য করে।
- Jest: Facebook দ্বারা তৈরি একটি testing ফ্রেমওয়ার্ক যা সহজ setup এবং out-of-the-box assertion সরবরাহ করে।
এখানে Mocha এবং Chai এর সাথে Lodash এর কিছু ফাংশন পরীক্ষা করার পদ্ধতি দেখানো হবে।
২. Mocha এবং Chai ইনস্টল করা
প্রথমে Mocha এবং Chai ইনস্টল করতে হবে।
npm install --save-dev mocha chai lodash
৩. Unit Testing এবং Test Cases
এখন আমরা Lodash এর কিছু জনপ্রিয় ফাংশন (যেমন map(), filter(), cloneDeep()) এর উপর test case তৈরি করব।
উদাহরণ ১: _.map() ফাংশনের Testing
_.map() ফাংশনটি একটি array এর প্রতিটি উপাদানকে modify করে নতুন array রিটার্ন করে।
Test Case:
const _ = require('lodash');
const assert = require('chai').assert;
describe('Lodash _.map() Function', function() {
it('should double the values of the array', function() {
const input = [1, 2, 3, 4];
const expected = [2, 4, 6, 8];
const result = _.map(input, num => num * 2);
assert.deepEqual(result, expected, 'Array elements should be doubled');
});
});
ব্যাখ্যা:
- এখানে
_.map()ফাংশনটি একটি array থেকে প্রতিটি উপাদানকে দ্বিগুণ করছে এবং Chai'sassert.deepEqual()ব্যবহার করে যাচাই করা হচ্ছে যে রিটার্ন হওয়া array সঠিক কিনা।
উদাহরণ ২: _.filter() ফাংশনের Testing
_.filter() ফাংশনটি একটি array এর মধ্যে থেকে একটি নির্দিষ্ট শর্ত পূর্ণ করা উপাদানগুলো বের করে।
Test Case:
describe('Lodash _.filter() Function', function() {
it('should filter even numbers', function() {
const input = [1, 2, 3, 4, 5, 6];
const expected = [2, 4, 6];
const result = _.filter(input, num => num % 2 === 0);
assert.deepEqual(result, expected, 'Only even numbers should be in the result');
});
});
ব্যাখ্যা:
- এখানে
_.filter()ফাংশনটি অ্যারে থেকে শুধুমাত্র even সংখ্যাগুলো ফিল্টার করছে, এবং তারপর সেই ফলাফলটি চেক করা হচ্ছে।
উদাহরণ ৩: _.cloneDeep() ফাংশনের Testing
_.cloneDeep() ফাংশনটি একটি object বা array এর গভীর কপি তৈরি করে, যাতে মূল ডেটা অক্ষুণ্ণ থাকে।
Test Case:
describe('Lodash _.cloneDeep() Function', function() {
it('should create a deep clone of an object', function() {
const original = { name: 'John', address: { city: 'New York' } };
const clone = _.cloneDeep(original);
// Modifying the clone object
clone.address.city = 'Los Angeles';
assert.notDeepEqual(original.address.city, clone.address.city, 'Original object should not be modified');
assert.deepEqual(original.address.city, 'New York', 'Original object should remain unchanged');
});
});
ব্যাখ্যা:
- এখানে
_.cloneDeep()ব্যবহার করে আমরাoriginalobject এর একটি গভীর কপি তৈরি করছি, এবং তারপর clone object এর মধ্যে পরিবর্তন করছি। এরপর যাচাই করা হচ্ছে যে original object পরিবর্তিত হয়নি এবং clone object সঠিকভাবে পরিবর্তিত হয়েছে।
৪. describe() এবং it() ফাংশন
describe(): এটি একটি test suite তৈরি করে যেখানে আপনি একাধিক test case লিখতে পারেন।it(): এটি একটি একক test case বা assertion তৈরি করে।
৫. Mocha কমান্ড দিয়ে টেস্ট চালানো
Mocha এর মাধ্যমে টেস্টগুলো চালাতে, আপনাকে একটি test script তৈরি করতে হবে।
package.json ফাইলে test স্ক্রিপ্ট যুক্ত করুন:
{
"scripts": {
"test": "mocha"
}
}
এখন টেস্ট চালানোর জন্য কমান্ডটি ব্যবহার করুন:
npm test
উপসংহার
Unit Testing হল কোডের সঠিকতা এবং কার্যকারিতা নিশ্চিত করার একটি গুরুত্বপূর্ণ পদ্ধতি, বিশেষ করে যখন আপনি একটি লাইব্রেরি যেমন Lodash ব্যবহার করছেন। Mocha এবং Chai ব্যবহার করে Lodash এর বিভিন্ন ফাংশনের উপর unit tests তৈরি করা যেতে পারে, যা কোডের সঠিকতা যাচাই করতে সাহায্য করে। উপরোক্ত উদাহরণগুলো দিয়ে আপনি Lodash এর বিভিন্ন ফাংশন যেমন _.map(), _.filter(), এবং _.cloneDeep() এর উপর test case তৈরি করতে পারেন এবং সেগুলির কার্যকারিতা নিশ্চিত করতে পারেন।
Read more