Aurelia অ্যাপ্লিকেশনের ইউনিট টেস্টিং

Aurelia এর টেস্টিং এবং ডিবাগিং - অরেলিয়া Aurelia) - Web Development

246

Aurelia-তে ইউনিট টেস্টিং একটি অত্যন্ত গুরুত্বপূর্ণ দিক, যা আপনাকে আপনার কোডের সঠিকতা যাচাই করতে এবং ভবিষ্যতে কোডের পরিবর্তন করলে সমস্যা প্রতিরোধ করতে সহায়ক হয়। Aurelia অ্যাপ্লিকেশনকে ইউনিট টেস্ট করার জন্য, আপনি সাধারণত Jasmine, Karma, এবং Aurelia Testing লাইব্রেরি ব্যবহার করতে পারেন।

এই টিউটোরিয়ালে, আমরা Jasmine এবং Karma ব্যবহারের মাধ্যমে Aurelia অ্যাপ্লিকেশনের ইউনিট টেস্টিং প্রক্রিয়া দেখব।


১. প্রথমে প্রয়োজনীয় প্যাকেজ ইন্সটল করা

Aurelia অ্যাপ্লিকেশন টেস্ট করার জন্য আপনাকে কিছু টেস্টিং প্যাকেজ ইন্সটল করতে হবে। এগুলো হল:

  • Karma: টেস্ট রানার
  • Jasmine: টেস্ট ফ্রেমওয়ার্ক
  • Aurelia Testing: Aurelia কম্পোনেন্ট এবং ডিপেনডেন্সি টেস্ট করার জন্য

এটি ইনস্টল করতে কমান্ড প্রম্পটে নিম্নলিখিত কমান্ডটি রান করুন:

npm install --save-dev karma karma-jasmine karma-chrome-launcher jasmine-core aurelia-testing

এখানে, আমরা karma, karma-jasmine, karma-chrome-launcher, jasmine-core, এবং aurelia-testing প্যাকেজগুলো ইনস্টল করছি।


২. Karma কনফিগারেশন তৈরি করা

Karma একটি টেস্ট রানার যা আপনার টেস্টগুলোকে ব্রাউজারে চালায় এবং টেস্টের ফলাফল দেখায়। আপনাকে একটি karma.conf.js কনফিগারেশন ফাইল তৈরি করতে হবে।

karma.conf.js ফাইলের উদাহরণ:

module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine'],
    files: [
      'node_modules/aurelia-polyfills/dist/amd/aurelia-polyfills.js',
      'node_modules/systemjs/dist/system.js',
      'node_modules/aurelia-bootstrapper/dist/amd/aurelia-bootstrapper.js',
      'node_modules/aurelia-testing/dist/amd/aurelia-testing.js',
      'src/**/*.js',
      'test/**/*.spec.js'
    ],
    browsers: ['Chrome'],
    plugins: [
      'karma-jasmine',
      'karma-chrome-launcher'
    ],
    reporters: ['progress'],
    singleRun: false
  });
};

এখানে, frameworks-এ jasmine নির্বাচন করা হয়েছে এবং files-এ আপনি আপনার অ্যাপ্লিকেশনের সোর্স এবং টেস্ট ফাইলগুলো উল্লেখ করবেন। test/**/*.spec.js ফাইলগুলোতে আপনার টেস্ট ক্যাসগুলো থাকবে।


৩. Jasmine টেস্ট লিখা

Aurelia অ্যাপ্লিকেশনের ইউনিট টেস্ট লিখতে, আপনাকে সাধারণভাবে describe, it, beforeEach, afterEach ফাংশনগুলো ব্যবহার করতে হবে, যা Jasmine এর টেস্টিং ফ্রেমওয়ার্কের অংশ।

৩.১. কম্পোনেন্ট টেস্টিং

ধরা যাক, আপনার App কম্পোনেন্ট আছে এবং আপনি সেটি টেস্ট করতে চান।

App.js:

export class App {
  message = 'Hello, Aurelia!';
}

এখন আমরা এই কম্পোনেন্টের জন্য একটি ইউনিট টেস্ট লিখব।

৩.২. App.spec.js (ইউনিট টেস্ট ফাইল)

import {App} from '../src/app';
import {StageComponent} from 'aurelia-testing';

describe('App', () => {
  let component;

  beforeEach(() => {
    component = StageComponent.withResources('app')
      .inView('<template><h1>${message}</h1></template>')
      .boundTo(new App());
  });

  afterEach(() => {
    component.dispose();
  });

  it('should display message "Hello, Aurelia!"', done => {
    component.create().then(() => {
      let element = component.element.querySelector('h1');
      expect(element.textContent).toBe('Hello, Aurelia!');
      done();
    });
  });
});

এখানে আমরা StageComponent ব্যবহার করেছি, যা Aurelia কম্পোনেন্টের টেস্টিং করার জন্য একটি বিশেষ টুল। inView মেথডের মাধ্যমে HTML টেমপ্লেট এবং boundTo মেথডের মাধ্যমে আমরা কম্পোনেন্টের ডেটা বাউন্ড করেছি।

  • beforeEach: টেস্ট শুরু হওয়ার আগে StageComponent তৈরি করছি।
  • afterEach: টেস্ট শেষ হওয়ার পরে কম্পোনেন্টটি dispose করছি।
  • it: আমরা যাচাই করছি যে, h1 ট্যাগে কম্পোনেন্টের message ভ্যালু সঠিকভাবে রেন্ডার হয়েছে কিনা।

৪. টেস্ট রান করা

এখন আপনি karma ব্যবহার করে টেস্ট রান করতে পারবেন। কমান্ড প্রম্পটে নিচের কমান্ডটি রান করুন:

karma start karma.conf.js

এটি আপনার টেস্টগুলি Chrome ব্রাউজারে চালাবে এবং আপনি টেস্টের ফলাফল দেখতে পারবেন।


৫. Aurelia Testing API

Aurelia তে আরও উন্নত টেস্টিং করার জন্য Aurelia Testing API ব্যবহার করা যায়। এই API এর মাধ্যমে আপনি আরও সুনির্দিষ্টভাবে কম্পোনেন্টের ইন্টারঅ্যাকশন এবং স্টেট চেক করতে পারেন।

৫.১. DOM ইন্টারঅ্যাকশন টেস্টিং

import {App} from '../src/app';
import {StageComponent} from 'aurelia-testing';

describe('App', () => {
  let component;

  beforeEach(() => {
    component = StageComponent.withResources('app')
      .inView('<template><h1>${message}</h1></template>')
      .boundTo(new App());
  });

  afterEach(() => {
    component.dispose();
  });

  it('should display the correct message in the h1 tag', done => {
    component.create().then(() => {
      let element = component.element.querySelector('h1');
      expect(element.textContent).toBe('Hello, Aurelia!');
      done();
    });
  });
});

এখানে, StageComponent ব্যবহার করে কম্পোনেন্টের DOM ইন্টারঅ্যাকশন টেস্ট করা হচ্ছে।


উপসংহার

Aurelia অ্যাপ্লিকেশনের ইউনিট টেস্টিং আপনাকে আপনার কোডের সঠিকতা যাচাই করার জন্য একটি শক্তিশালী টুল প্রদান করে। Jasmine এবং Karma এর মাধ্যমে আপনি আপনার কম্পোনেন্টের আচরণ, ডেটা বাইন্ডিং, UI ইন্টারঅ্যাকশন এবং অন্যান্য কার্যক্রম টেস্ট করতে পারেন। Aurelia Testing API এবং StageComponent ব্যবহার করে, আপনি আপনার অ্যাপ্লিকেশনটির ভিউ এবং লজিক সঠিকভাবে টেস্ট করতে সক্ষম হবেন।

Content added By
Promotion

Are you sure to start over?

Loading...