Web Development Multiple Test Cases পরিচালনা গাইড ও নোট

220

JasmineJS-এ একাধিক টেস্ট কেস পরিচালনা করা খুবই সহজ। একাধিক টেস্ট কেসের মাধ্যমে আপনি বিভিন্ন ধরনের আচরণ পরীক্ষা করতে পারেন, যেমন একটি নির্দিষ্ট ফাংশন বা মডিউলের বিভিন্ন ইনপুট বা শর্তের অধীনে ফলাফল কেমন হয়। JasmineJS এ একাধিক টেস্ট কেস পরিচালনার জন্য আপনি describe() এবং it() ব্লকগুলির মাধ্যমে টেস্ট গোষ্ঠী এবং টেস্ট কেস তৈরি করতে পারেন।


একাধিক টেস্ট কেস পরিচালনার মূল উপাদান

JasmineJS এ একাধিক টেস্ট কেস তৈরি করার জন্য সাধারণত নিচের কাঠামো অনুসরণ করা হয়:

describe("Feature/Function Name", function() {
  
  it("should perform a specific behavior", function() {
    // Test code
  });

  it("should handle another case", function() {
    // Test code
  });

});

এখানে:

  • describe(): এটি একটি ফিচার বা ফাংশনের টেস্ট গোষ্ঠী তৈরি করে, যেখানে একাধিক টেস্ট কেস থাকতে পারে।
  • it(): এটি প্রতিটি নির্দিষ্ট টেস্ট কেস বর্ণনা করে, যেখানে আপনি প্রতিটি টেস্টের জন্য নির্দিষ্ট আচরণ পরীক্ষা করবেন।

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

ধরা যাক, আপনি একটি Calculator ক্লাসের উপর বিভিন্ন গণনা কার্যকলাপ পরীক্ষা করতে চান। এর জন্য আপনি একাধিক টেস্ট কেস তৈরি করতে পারেন।

উদাহরণ:

describe("Calculator", function() {
  let calc;

  beforeEach(function() {
    calc = new Calculator();  // প্রতিটি টেস্ট কেসের আগে নতুন Calculator তৈরি
  });

  it("should add two numbers correctly", function() {
    const result = calc.add(2, 3);
    expect(result).toBe(5);  // ২ এবং ৩ যোগ করলে ৫ আসবে
  });

  it("should subtract two numbers correctly", function() {
    const result = calc.subtract(5, 3);
    expect(result).toBe(2);  // ৫ এবং ৩ বিয়োগ করলে ২ আসবে
  });

  it("should multiply two numbers correctly", function() {
    const result = calc.multiply(2, 3);
    expect(result).toBe(6);  // ২ এবং ৩ গুণ করলে ৬ আসবে
  });

  it("should divide two numbers correctly", function() {
    const result = calc.divide(6, 3);
    expect(result).toBe(2);  // ৬ এবং ৩ ভাগ করলে ২ আসবে
  });
});

এখানে:

  • beforeEach(): প্রতিটি টেস্ট কেসের আগে নতুন Calculator ইনস্ট্যান্স তৈরি করা হচ্ছে।
  • it(): চারটি টেস্ট কেস তৈরি করা হয়েছে, প্রতিটি একটি নির্দিষ্ট গাণিতিক কার্যকলাপ পরীক্ষা করছে: যোগ, বিয়োগ, গুণ, এবং ভাগ।

একাধিক টেস্ট কেসের পরিচালনা ও সংগঠন

JasmineJS এ আপনি একাধিক টেস্ট কেসকে বিভিন্ন describe() ব্লকে বিভক্ত করতে পারেন, যাতে টেস্টগুলো আরও সুসংগঠিত থাকে।

উদাহরণ:

describe("Addition Tests", function() {
  let calc;

  beforeEach(function() {
    calc = new Calculator();
  });

  it("should add two positive numbers correctly", function() {
    expect(calc.add(2, 3)).toBe(5);
  });

  it("should add negative numbers correctly", function() {
    expect(calc.add(-2, -3)).toBe(-5);
  });
});

describe("Subtraction Tests", function() {
  let calc;

  beforeEach(function() {
    calc = new Calculator();
  });

  it("should subtract two numbers correctly", function() {
    expect(calc.subtract(5, 3)).toBe(2);
  });

  it("should handle negative results correctly", function() {
    expect(calc.subtract(3, 5)).toBe(-2);
  });
});

এখানে:

  • দুটি describe() ব্লক ব্যবহৃত হয়েছে: একটির মাধ্যমে যোগ এবং অন্যটির মাধ্যমে বিয়োগ পরীক্ষা করা হচ্ছে।
  • প্রতিটি describe() ব্লকের মধ্যে একাধিক it() ব্লক রয়েছে, যার মাধ্যমে আলাদা আলাদা টেস্ট কেস পরীক্ষা করা হচ্ছে।

টেস্টের শৃঙ্খলা বজায় রাখা

JasmineJS-এ একাধিক টেস্ট কেসের ক্ষেত্রে কিছু কেস পরস্পর একে অপরের উপরে নির্ভরশীল হতে পারে (যেমন, একটি টেস্ট কেসের আউটপুট পরবর্তী কেসের ইনপুট হিসেবে ব্যবহার করা)। তবে, JasmineJS এটিকে সাবধানতার সাথে পরিচালনা করে যাতে এক কেসের ব্যর্থতা অন্য কেসকে প্রভাবিত না করে।

বেস্ট প্র্যাকটিস:

  • প্রতিটি টেস্ট কেস যেন পরিপূর্ণভাবে স্বাধীন হয়, অর্থাৎ এক টেস্ট কেসের ফলাফল অন্য কেসের উপর প্রভাব ফেলবে না।
  • beforeEach() এবং afterEach() ব্যবহার করে টেস্টের আগে এবং পরে পরিবেশ সেটআপ এবং পরিস্কার করা উচিত।

প্যারামেট্রাইজড টেস্ট কেস (Parameterized Test Cases)

যদি একাধিক ভিন্ন ইনপুটের জন্য একই ধরনের টেস্ট চালাতে চান, তবে আপনি forEach() বা it.each() ব্যবহার করতে পারেন, যা আপনাকে বিভিন্ন ইনপুটের জন্য একই টেস্ট পুনরাবৃত্তি করতে সহায়তা করে।

উদাহরণ:

describe("Addition Tests", function() {
  let calc;

  beforeEach(function() {
    calc = new Calculator();
  });

  const testCases = [
    {a: 2, b: 3, result: 5},
    {a: -2, b: -3, result: -5},
    {a: 0, b: 0, result: 0}
  ];

  testCases.forEach(function(testCase) {
    it(`should add ${testCase.a} and ${testCase.b} correctly`, function() {
      expect(calc.add(testCase.a, testCase.b)).toBe(testCase.result);
    });
  });
});

এখানে:

  • একটি testCases অ্যারে ব্যবহার করা হয়েছে, যেখানে প্রত্যেকটি ইনপুটের জন্য আলাদা টেস্ট কেস তৈরি করা হচ্ছে।
  • forEach() এর মাধ্যমে আমরা প্রতি ইনপুটের জন্য আলাদা টেস্ট কেস এক্সিকিউট করছি।

সারাংশ

  • Multiple Test Cases: JasmineJS-এ একাধিক টেস্ট কেস পরিচালনা করা খুবই সহজ এবং সুসংগঠিত।
  • describe() এবং it(): টেস্ট কেসগুলোকে গোষ্ঠীভুক্ত এবং নির্দিষ্ট আচরণ পরীক্ষার জন্য ব্যবহার করা হয়।
  • beforeEach() এবং afterEach(): টেস্টের আগে এবং পরে ইনিশিয়ালাইজেশন এবং পরিস্কার কার্যক্রম পরিচালনা করা হয়।
  • Parameterized Tests: একাধিক ইনপুটের জন্য একই ধরনের টেস্ট পুনরাবৃত্তি করার জন্য প্যারামেট্রাইজড টেস্ট ব্যবহার করা যায়।

JasmineJS আপনাকে একাধিক টেস্ট কেস সহ একটি সুসংগঠিত এবং কার্যকরী টেস্টিং পরিবেশ তৈরি করতে সহায়তা করে, যা কোডের বিভিন্ন অংশের প্রতিটি আচরণকে পরীক্ষা করার জন্য খুবই কার্যকরী।

Content added By
Promotion

Are you sure to start over?

Loading...