Electron অ্যাপ্লিকেশন তৈরি করার পর, টেস্টিং একটি গুরুত্বপূর্ণ অংশ হয়ে দাঁড়ায়, যাতে অ্যাপের কার্যকারিতা সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করা যায়। Mocha এবং Spectron হলো জনপ্রিয় টেস্টিং ফ্রেমওয়ার্ক, যা Electron অ্যাপ্লিকেশন টেস্ট করতে ব্যবহৃত হয়।
- Mocha: এটি একটি JavaScript টেস্টিং ফ্রেমওয়ার্ক যা ইউনিট এবং ইন্টিগ্রেশন টেস্টিং করতে ব্যবহৃত হয়।
- Spectron: এটি Electron অ্যাপ্লিকেশন টেস্টিংয়ের জন্য বিশেষভাবে তৈরি করা একটি টেস্টিং ফ্রেমওয়ার্ক। এটি WebDriverIO এবং Chromedriver এর উপরে ভিত্তি করে তৈরি।
এখানে Mocha এবং Spectron ব্যবহার করে Electron অ্যাপ্লিকেশন টেস্টিং করার প্রক্রিয়া আলোচনা করা হবে।
১. Mocha সেটআপ এবং কনফিগারেশন
Mocha একটি টেস্টিং ফ্রেমওয়ার্ক, যা Node.js এর সাথে কাজ করে। Mocha ব্যবহার করে আপনি অ্যাসিঙ্ক্রোনাস এবং সিঙ্ক্রোনাস টেস্ট লিখতে পারেন। এখানে Mocha এর মাধ্যমে Electron অ্যাপ্লিকেশন টেস্ট করার প্রক্রিয়া দেখানো হবে।
Mocha ইনস্টল করা
প্রথমে, Mocha ইনস্টল করতে হবে:
npm install mocha --save-dev
উদাহরণ: Mocha টেস্ট ফাইল
test/main.test.js:
const { app, BrowserWindow } = require('electron');
const assert = require('assert');
let mainWindow;
describe('Electron App', function () {
this.timeout(10000); // Timeout সেট করা হয়েছে (10 সেকেন্ড)
before(function () {
// Electron অ্যাপ চালু করা
mainWindow = new BrowserWindow({ width: 800, height: 600 });
mainWindow.loadURL('http://localhost:3000');
});
after(function () {
// অ্যাপ বন্ধ করা
mainWindow.close();
});
it('should open a window', function (done) {
mainWindow.webContents.once('did-finish-load', function () {
assert.equal(mainWindow.isVisible(), true); // উইন্ডোটি দৃশ্যমান কিনা পরীক্ষা
done();
});
});
});
ব্যাখ্যা:
- before(): এই ফাংশনটি টেস্ট শুরুর আগে Electron অ্যাপ চালু করবে।
- after(): টেস্ট শেষে BrowserWindow বন্ধ করবে।
- it(): এটি আসল টেস্ট। এখানে,
BrowserWindowসফলভাবে লোড হলে তা visible কিনা তা পরীক্ষা করা হচ্ছে।
২. Spectron ব্যবহার করে Electron অ্যাপ টেস্টিং
Spectron হলো একটি টেস্টিং ফ্রেমওয়ার্ক, যা Electron অ্যাপ্লিকেশনের জন্য তৈরি করা হয়েছে। এটি Mocha এবং WebDriverIO ব্যবহার করে Electron অ্যাপ্লিকেশন টেস্ট করতে সাহায্য করে।
Spectron ইনস্টল করা
প্রথমে Spectron ইনস্টল করুন:
npm install spectron --save-dev
উদাহরণ: Spectron টেস্ট ফাইল
test/app.test.js:
const { Application } = require('spectron');
const path = require('path');
const assert = require('assert');
describe('Electron App', function () {
this.timeout(10000); // Timeout সেট করা (10 সেকেন্ড)
let app;
beforeEach(function () {
// Electron অ্যাপ শুরু করা
app = new Application({
path: path.join(__dirname, '../node_modules/.bin/electron'), // Electron এর পাথ
args: [path.join(__dirname, '..')] // অ্যাপের পাথ
});
return app.start(); // অ্যাপ চালু করা
});
afterEach(function () {
if (app && app.isRunning()) {
return app.stop(); // টেস্টের পর অ্যাপ বন্ধ করা
}
});
it('should show the app window', function () {
return app.client.getWindowCount().then(function (count) {
assert.equal(count, 1); // উইন্ডো সংখ্যা পরীক্ষা
});
});
it('should have the correct title', function () {
return app.client.getTitle().then(function (title) {
assert.equal(title, 'Electron App'); // অ্যাপের টাইটেল পরীক্ষা
});
});
});
ব্যাখ্যা:
- Spectron এ Application ক্লাস ব্যবহার করে আপনি Electron অ্যাপ্লিকেশন শুরু এবং বন্ধ করতে পারেন।
- getWindowCount(): টেস্ট করে কতটি উইন্ডো ওপেন আছে তা নিশ্চিত করে।
- getTitle(): অ্যাপ্লিকেশনের title পরীক্ষা করে।
৩. Mocha এবং Spectron টেস্ট চালানো
Mocha এবং Spectron টেস্ট চালানোর জন্য আপনাকে npm scripts ফাইলের মধ্যে টেস্ট স্ক্রিপ্ট যুক্ত করতে হবে।
উদাহরণ: package.json
{
"scripts": {
"test": "mocha --timeout 10000", // Mocha টেস্ট চালানোর কমান্ড
"test:spectron": "mocha test/app.test.js" // Spectron টেস্ট চালানোর কমান্ড
}
}
এখন, আপনি টার্মিনালে নিচের কমান্ডটি দিয়ে টেস্ট চালাতে পারেন:
Mocha টেস্ট চালাতে:
npm testSpectron টেস্ট চালাতে:
npm run test:spectron
৪. টেস্টিংয়ের জন্য কিছু গুরুত্বপূর্ণ টিপস
- Asynchronous টেস্টিং: Mocha এবং Spectron উভয়েই অ্যাসিঙ্ক্রোনাস টেস্টিং সমর্থন করে। তাই আপনি
doneকলব্যাক অথবা Promises ব্যবহার করে টেস্টের সিঙ্ক্রোনাইজেশন নিশ্চিত করতে পারেন। - Timeout: টেস্টের জন্য একটি সঠিক timeout সেট করুন, বিশেষত যখন অ্যাপ্লিকেশনে বড় কাজ করতে হবে, যেমন ডেটা লোড বা ইন্টারনেট সংযোগ।
UI ইন্টারঅ্যাকশন: Spectron ব্যবহার করে UI এলিমেন্টে ক্লিক, টাইপ, ইত্যাদি ইন্টারঅ্যাকশন করা যায়। উদাহরণ:
app.client.click('#button-id') // একটি বাটনে ক্লিক করা
সারাংশ
- Mocha এবং Spectron ব্যবহার করে আপনি Electron অ্যাপ্লিকেশনের ইউনিট এবং ইন্টিগ্রেশন টেস্টিং করতে পারেন।
- Mocha JavaScript টেস্টিং ফ্রেমওয়ার্ক যা অ্যাসিঙ্ক্রোনাস টেস্টিং সমর্থন করে।
- Spectron Electron অ্যাপ্লিকেশনের UI এবং ফাংশনাল টেস্টিং করতে ব্যবহৃত হয়।
- Spectron এর মাধ্যমে UI ইন্টারঅ্যাকশন এবং Mocha এর মাধ্যমে ইউনিট টেস্ট সঞ্চালন করা যায়।
এভাবে, Electron অ্যাপ্লিকেশনটির কার্যকারিতা নিশ্চিত করার জন্য Mocha এবং Spectron অত্যন্ত কার্যকরী টেস্টিং টুল।
Read more