QUnit ব্যবহার করে টেস্ট লেখা এবং রান করা

Ember.js এর Testing Framework - এমবারজেএস (EmberJS) - Web Development

290

QUnit হল একটি JavaScript টেস্ট ফ্রেমওয়ার্ক, যা Ember.js অ্যাপ্লিকেশনের জন্য টেস্ট লিখতে এবং রান করতে ব্যবহৃত হয়। Ember CLI ডিফল্টভাবে QUnit টেস্টিং ফ্রেমওয়ার্ক ইন্টিগ্রেট করে, যা আপনার অ্যাপ্লিকেশনটিকে সহজেই টেস্টিং করার সুবিধা প্রদান করে।

এমবারজেএস-এ টেস্টিং খুবই গুরুত্বপূর্ণ, কারণ এটি আপনার কোডের নির্ভরযোগ্যতা এবং মান বজায় রাখতে সাহায্য করে। এই গাইডে, আমরা দেখব QUnit এর মাধ্যমে এমবারজেএস অ্যাপ্লিকেশন টেস্ট লেখার এবং রান করার পদ্ধতি।


Ember.js-এ QUnit সেটআপ

Ember CLI ডিফল্টভাবে QUnit ইনস্টল করে, কিন্তু যদি আপনি সেটি ম্যানুয়ালি ইনস্টল করতে চান, তবে নিচের কমান্ডটি ব্যবহার করতে পারেন:

ember install ember-qunit

এটি QUnit এবং প্রয়োজনীয় ডিপেন্ডেন্সি ইনস্টল করবে। এরপর আপনি tests/ ডিরেক্টরিতে টেস্ট ফাইল তৈরি করতে পারবেন।


QUnit টেস্ট ফাইলের গঠন

এমবারজেএস টেস্ট ফাইলগুলো সাধারণত tests/ ফোল্ডারে থাকে এবং এই ফোল্ডারেই টেস্ট ফাইলগুলো লেখা হয়। প্রতিটি টেস্ট ফাইলের মধ্যে QUnit টেস্ট কেস থাকে।

উদাহরণ: একটি সাধারণ QUnit টেস্ট

ধরা যাক, আমরা একটি add নামক ফাংশন টেস্ট করতে চাই, যা দুটি সংখ্যা যোগ করবে। এর জন্য একটি কাস্টম মডিউল তৈরি করা হবে।

টেস্ট ফাইল তৈরি করা:

// tests/unit/helpers/add-test.js
import { module, test } from 'qunit';
import { add } from 'my-app/helpers/add';

module('Unit | Helper | add', function() {
  test('it adds two numbers correctly', function(assert) {
    let result = add([1, 2]);  // helper ফাংশন কল করা
    assert.equal(result, 3, 'The sum of 1 and 2 is 3');
  });
});

এখানে, module() টেস্ট গ্রুপ তৈরি করে এবং test() প্রতিটি ইউনিট টেস্টের জন্য ব্যবহৃত হয়। assert.equal() ব্যবহার করে পরীক্ষিত মানের সাথে প্রত্যাশিত মান তুলনা করা হয়।


QUnit-এ আরও কিছু টেস্ট লিখা

১. UI টেস্টিং

যদি আপনি কোনো component টেস্ট করতে চান, তবে আপনি render() ফাংশন ব্যবহার করতে পারেন। এখানে একটি button কম্পোনেন্টের টেস্ট লেখা হচ্ছে:

// tests/integration/components/button-test.js
import { module, test } from 'qunit';
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';

module('Integration | Component | button', function() {
  test('it renders', async function(assert) {
    await render(hbs`<Button @label="Click Me"/>`);
    assert.dom('button').hasText('Click Me');
  });
});

এখানে render() ফাংশন ব্যবহার করে কম্পোনেন্টটি রেন্ডার করা হয় এবং assert.dom() দিয়ে DOM এ button এর মধ্যে Click Me লেখা থাকছে কিনা পরীক্ষা করা হয়।

২. Actions Testing

কোনও action বা event টেস্ট করতে হলে, @ember/test-helpers লাইব্রেরির click() বা fillIn() ফাংশন ব্যবহার করা যেতে পারে।

// tests/integration/components/counter-test.js
import { module, test } from 'qunit';
import { render, click } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';

module('Integration | Component | counter', function() {
  test('it increments the counter when clicked', async function(assert) {
    await render(hbs`<Counter />`);

    assert.dom('.counter').hasText('0');

    await click('.increment-button');  // button class যেটি ইনক্রিমেন্ট করে

    assert.dom('.counter').hasText('1');
  });
});

এখানে, click() ব্যবহার করে increment-button এ ক্লিক করার পর কাউন্টারের মান টেস্ট করা হয়েছে।


QUnit-এ Async টেস্ট

যখন আপনি অ্যাসিঙ্ক্রোনাস অপারেশন টেস্ট করবেন (যেমন ডেটা লোডিং বা ফেচিং), তখন async/await ব্যবহার করে টেস্ট করতে পারবেন।

উদাহরণ: Async টেস্ট

// tests/unit/routes/posts-test.js
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';

module('Unit | Route | posts', function(hooks) {
  setupTest(hooks);

  test('it loads posts data', async function(assert) {
    let route = this.owner.lookup('route:posts');
    
    // Mocking a service or store data fetching
    let posts = await route.model();
    
    assert.ok(posts.length > 0, 'Posts data should be loaded');
  });
});

এখানে model() মেথডকে async/await ব্যবহার করে পরীক্ষা করা হয়েছে, যাতে অ্যাসিঙ্ক্রোনাস ডেটা লোড হওয়া পর্যন্ত আমরা অপেক্ষা করতে পারি।


QUnit টেস্ট রান করা

একবার টেস্ট ফাইলগুলি লিখে ফেললে, আপনি Ember CLI ব্যবহার করে টেস্ট চালাতে পারেন। নিচের কমান্ডটি ব্যবহার করে আপনি সমস্ত টেস্ট রান করতে পারেন:

ember test

এটি সমস্ত টেস্ট রান করবে এবং আপনাকে টেস্ট রেজাল্ট দেখাবে। আপনি ember test --server কমান্ডও ব্যবহার করতে পারেন, যা আপনাকে টেস্ট সার্ভার চালু করে এবং প্রতিটি কোড পরিবর্তন সেভ করার সাথে সাথেই টেস্ট রান করবে।


Ember.js-এ টেস্টিংয়ের সুবিধা

  1. অটোমেটেড টেস্টিং: কোডের গুণগত মান নিশ্চিত করতে অটোমেটেড টেস্টিং ব্যবহার করা হয়, যা দ্রুত উন্নয়ন এবং উন্নত ফলাফল প্রদান করে।
  2. শক্তিশালী টেস্ট ফ্রেমওয়ার্ক: QUnit সহজ এবং শক্তিশালী টেস্ট ফ্রেমওয়ার্ক সরবরাহ করে, যা অ্যাপ্লিকেশন টেস্টিংকে কার্যকরী ও দ্রুত করে তোলে।
  3. কম্পোনেন্ট টেস্টিং: Integration Testing এবং Unit Testing এর মাধ্যমে আপনার অ্যাপ্লিকেশনের সব অংশের কোড পরীক্ষা করা সম্ভব।

উপসংহার

Ember.js-এ QUnit টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশন টেস্ট করতে পারেন, যা নিশ্চিত করে যে কোডটি সঠিকভাবে কাজ করছে এবং বাগ কম থাকবে। Unit এবং Integration টেস্টিং এর মাধ্যমে অ্যাপ্লিকেশনকে নির্ভরযোগ্য এবং স্টেবল রাখা সম্ভব। Async/await এবং Promises ব্যবহার করে অ্যাসিঙ্ক্রোনাস ডেটা ফেচিং এবং প্রোসেসিং টেস্ট করাও সহজ হয়।

Content added By
Promotion

Are you sure to start over?

Loading...