Unit Testing হল সফটওয়্যার ডেভেলপমেন্টের একটি গুরুত্বপূর্ণ অংশ যা প্রতিটি ছোট ইউনিট বা ফাংশনের নির্ভরযোগ্যতা পরীক্ষা করে। ExtJS অ্যাপ্লিকেশনের ক্ষেত্রে, unit testing অ্যাপ্লিকেশনটির কার্যক্ষমতা এবং কম্পোনেন্টগুলো ঠিকঠাক কাজ করছে কিনা তা নিশ্চিত করতে সহায়ক।
ExtJS এ unit testing করার জন্য সাধারণত Jasmine, QUnit, অথবা Karma ব্যবহার করা হয়, যা জাভাস্ক্রিপ্ট টেস্টিং ফ্রেমওয়ার্ক এবং রানটাইম টেস্টিং টুলস হিসেবে ব্যবহৃত হয়। ExtJS নিজে Sencha Test নামক একটি টেস্টিং টুলও প্রদান করে, যা ExtJS অ্যাপ্লিকেশনগুলির জন্য unit test, functional test, এবং integration test চালাতে সাহায্য করে।
এই গাইডে আমরা ExtJS অ্যাপ্লিকেশনের জন্য Unit Testing কিভাবে করা যায় তা আলোচনা করব, এবং বিভিন্ন টেস্টিং টুল এবং ফ্রেমওয়ার্ক নিয়ে কিছু তথ্য প্রদান করব।
Sencha Test হল ExtJS অ্যাপ্লিকেশনের জন্য একটি টেস্টিং প্ল্যাটফর্ম যা অ্যাপ্লিকেশনের ইউআই এবং ফাংশনালিটি পরীক্ষা করার জন্য ব্যবহৃত হয়। এটি ExtJS অ্যাপ্লিকেশনগুলির জন্য unit test, functional test, integration test ইত্যাদি চালাতে সহায়ক।
npm install -g @sencha/command
Unit Test Example with Sencha Test:
describe("MyApp.view.MyComponent", function() {
it("should initialize correctly", function() {
var component = Ext.create('MyApp.view.MyComponent');
expect(component).toBeDefined();
expect(component.getTitle()).toBe("Expected Title");
});
it("should call the handler function when button is clicked", function() {
var component = Ext.create('MyApp.view.MyComponent');
var button = component.down('button');
spyOn(component, 'onButtonClick');
button.fireEvent('click');
expect(component.onButtonClick).toHaveBeenCalled();
});
});
এখানে:
describe
ব্লকের মধ্যে পরীক্ষার উদ্দেশ্য এবং উপাদানটি দেওয়া হয়।it
ব্লকে টেস্ট কেস দেয়া হয়, যা পরীক্ষা করবে কম্পোনেন্ট বা ফাংশন ঠিকমতো কাজ করছে কিনা।spyOn
ব্যবহার করে কোনো ফাংশনের কল ট্র্যাক করা হয়।Jasmine হল একটি পপুলার টেস্টিং ফ্রেমওয়ার্ক যা জাভাস্ক্রিপ্ট ফাংশনের unit testing করতে ব্যবহৃত হয়। ExtJS অ্যাপ্লিকেশনে Jasmine ব্যবহার করতে, প্রথমে আপনার অ্যাপ্লিকেশন এবং টেস্ট ফাইলগুলোকে কনফিগার করতে হবে।
npm install --save-dev jasmine
spec/support/jasmine.json
ফাইল তৈরি করুন এবং সেখানে নিচের কনফিগারেশন যোগ করুন:
{
"spec_dir": "spec",
"spec_files": [
"spec/**/*[sS]pec.js"
],
"helpers": [
"helpers/**/*.js"
]
}
describe("MyApp.model.User", function() {
it("should return the correct name", function() {
var user = Ext.create('MyApp.model.User', { name: "John Doe" });
expect(user.getName()).toBe("John Doe");
});
});
এখানে:
describe
: টেস্টের উদ্দেশ্য বা মডিউল বর্ণনা করে।it
: প্রত্যেকটি টেস্ট কেস লিখতে ব্যবহৃত হয়।expect
: টেস্টের ফলাফল যাচাই করতে ব্যবহৃত হয়।Karma হল একটি টেস্ট রানার, যা আপনার জাভাস্ক্রিপ্ট টেস্টিং ফ্রেমওয়ার্ক (যেমন Jasmine) চালাতে সহায়ক। Karma ব্যবহার করে আপনি ব্রাউজারের মধ্যে টেস্ট চালাতে পারেন এবং এটি স্বয়ংক্রিয়ভাবে আপনার কোডের পরিবর্তন ট্র্যাক করে।
npm install --save-dev karma karma-jasmine karma-chrome-launcher
karma.conf.js
ফাইল তৈরি করুন এবং সেখানে কনফিগারেশন সেট করুন:
module.exports = function(config) {
config.set({
frameworks: ['jasmine'],
files: [
'app/**/*.js',
'spec/**/*.spec.js'
],
browsers: ['Chrome'],
singleRun: true
});
};
karma start
এখানে, Karma আপনার টেস্ট ফাইলগুলোকে চালাবে এবং Chrome ব্রাউজারে তাদের পরীক্ষা করবে।
QUnit একটি জাভাস্ক্রিপ্ট টেস্টিং ফ্রেমওয়ার্ক যা ExtJS অ্যাপ্লিকেশনে ব্যবহৃত হতে পারে। এটি অ্যাপ্লিকেশনটির ইউনিট টেস্টিং করার জন্য একটি সিম্পল এবং কার্যকরী পদ্ধতি সরবরাহ করে।
npm install --save-dev qunit
QUnit.module("MyApp.model.User");
QUnit.test("Name should be correct", function(assert) {
var user = Ext.create('MyApp.model.User', { name: 'John Doe' });
assert.equal(user.getName(), 'John Doe', 'Name is correct');
});
QUnit Test এ:
QUnit.module
: পরীক্ষার মডিউল তৈরি করা হয়।QUnit.test
: নির্দিষ্ট টেস্ট কেস তৈরি করা হয়।assert.equal()
: একটি ভ্যালু যাচাই করে।Unit Testing এর মাধ্যমে আপনার ExtJS অ্যাপ্লিকেশন আরও নির্ভরযোগ্য এবং কার্যকরী হয়, এবং কোড রিফ্যাক্টরিং বা নতুন ফিচার অ্যাড করার সময় কোনো সমস্যা সৃষ্টি না হওয়ার সম্ভাবনা বৃদ্ধি পায়।
Read more