Mocha এবং Chai হল JavaScript টেস্টিং লাইব্রেরি যা ইউনিট টেস্টিং এবং অ্যাসারশন ফাংশন প্রদান করে। Lodash এর মতো লাইব্রেরির জন্য, Mocha এবং Chai ব্যবহার করে টেস্টিং করা সহজ এবং কার্যকরী। এখানে আমরা Mocha এবং Chai এর সাথে Lodash ফাংশনগুলো টেস্ট করার পদ্ধতি দেখব।
১. Mocha এবং Chai ইনস্টল করা
প্রথমে, আপনার প্রোজেক্টে Mocha এবং Chai ইনস্টল করতে হবে। আপনি npm ব্যবহার করে এটি করতে পারেন।
npm init -y
npm install --save-dev mocha chai
এটি Mocha (টেস্ট রানার) এবং Chai (অ্যাসারশন লাইব্রেরি) ইনস্টল করবে।
২. Mocha টেস্ট ফাইল তৈরি করা
এখন আপনি একটি টেস্ট ফাইল তৈরি করুন, যেমন test.js যেখানে আপনি Lodash এর ফাংশন টেস্ট করবেন।
উদাহরণ: test.js ফাইল তৈরি করা
const assert = require('chai').assert; // Chai assert ব্যবহার করা
const _ = require('lodash'); // Lodash ইম্পোর্ট করা
describe('Lodash Functions Tests', function() {
it('should test _.map() function', function() {
const numbers = [1, 2, 3, 4];
const doubled = _.map(numbers, (num) => num * 2);
assert.deepEqual(doubled, [2, 4, 6, 8]); // assert চেক করে যে doubled array সঠিক কিনা
});
it('should test _.filter() function', function() {
const numbers = [1, 2, 3, 4, 5];
const evens = _.filter(numbers, (num) => num % 2 === 0);
assert.deepEqual(evens, [2, 4]); // assert চেক করে যে evens array সঠিক কিনা
});
it('should test _.uniq() function', function() {
const numbers = [1, 2, 2, 3, 4, 4, 5];
const uniqueNumbers = _.uniq(numbers);
assert.deepEqual(uniqueNumbers, [1, 2, 3, 4, 5]); // assert চেক করে যে unique array সঠিক কিনা
});
});
এখানে, তিনটি Lodash ফাংশনের টেস্ট করা হয়েছে:
_.map()- একটি অ্যারে থেকে প্রতিটি মানে গুণ করা হয়েছে।_.filter()- অ্যারের মধ্যে শুধু even সংখ্যাগুলো বের করা হয়েছে।_.uniq()- অ্যারের duplicate সংখ্যা সরিয়ে নতুন ইউনিক অ্যারে তৈরি করা হয়েছে।
৩. টেস্ট রান করা
Mocha ব্যবহার করে টেস্ট রান করতে, আপনি নীচের কমান্ডটি চালাতে পারেন:
npx mocha test.js
এটি আপনার test.js ফাইলটি রান করবে এবং টেস্টগুলো execute করবে। আপনি যদি সব টেস্ট একসাথে চালাতে চান, তবে কমান্ডটি এক্সিকিউট করলে আপনি নিচের মতো আউটপুট দেখতে পারবেন।
উদাহরণ আউটপুট:
Lodash Functions Tests
✓ should test _.map() function
✓ should test _.filter() function
✓ should test _.uniq() function
3 passing (10ms)
৪. আরও কিছু উদাহরণ
_.chain() টেস্ট করা:
it('should test _.chain() function', function() {
const numbers = [1, 2, 3, 4, 5];
const result = _.chain(numbers)
.filter(num => num % 2 === 0)
.map(num => num * 2)
.value(); // .value() দিয়ে চেইন শেষ করা
assert.deepEqual(result, [4, 8]);
});
এখানে, _.chain() ব্যবহার করে একাধিক ফাংশন চেইন করা হয়েছে এবং শেষে .value() কল করে ফলাফল নেওয়া হয়েছে।
_.debounce() টেস্ট করা:
it('should test _.debounce() function', function(done) {
const spy = chai.spy(); // Chai spy ব্যবহার করে
const debouncedFunc = _.debounce(spy, 100);
debouncedFunc();
debouncedFunc();
debouncedFunc();
setTimeout(() => {
assert(spy.calledOnce); // spy.assert.check করে যে debouncedFunc একবারই call হয়েছে
done();
}, 200);
});
এখানে _.debounce() ফাংশনটি টেস্ট করা হয়েছে, যাতে দেখানো হয়েছে যে ফাংশনটি কতবার কল করা হচ্ছে এবং কিভাবে Debouncing কাজ করছে।
৫. টেস্টিংয়ের জন্য Chai এর ব্যবহার
Chai হল একটি অ্যাসারশন লাইব্রেরি যা JavaScript টেস্টিং ফ্রেমওয়ার্কে অ্যাসারশনস (assertions) প্রদান করে। Lodash এর ফাংশনগুলোর টেস্ট করার জন্য Chai এর assert বা expect পদ্ধতি ব্যবহার করা যায়।
Chai এর Assertion Methods:
assert.deepEqual(value1, value2)- value1 এবং value2 সমান কিনা তা যাচাই করে।assert.isTrue(value)- valuetrueকিনা তা যাচাই করে।assert.isArray(value)- value একটি অ্যারে কিনা তা যাচাই করে।
উপসংহার
Mocha এবং Chai ব্যবহার করে আপনি Lodash এর ফাংশনগুলো খুব সহজেই টেস্ট করতে পারেন। Lodash এর বিভিন্ন ফাংশন যেমন _.map(), _.filter(), _.uniq() ইত্যাদি সহজেই ইউনিট টেস্টিংয়ের মাধ্যমে পরীক্ষা করা যায়, এবং আপনি এই টেস্টিং পদ্ধতি ব্যবহার করে আপনার কোডের মান বজায় রাখতে পারেন। Mocha একটি টেস্ট রানার হিসেবে কাজ করে এবং Chai অ্যাসারশন লাইব্রেরি হিসেবে আপনার টেস্টের ফলাফল যাচাই করে।
Read more