Web Development beforeEach() এবং afterEach() এর ভূমিকা গাইড ও নোট

203

JasmineJS এ beforeEach() এবং afterEach() ফাংশন দুটি টেস্ট কেসের পূর্বে বা পরে কিছু নির্দিষ্ট কার্যক্রম বা সেটআপ পরিচালনা করতে ব্যবহৃত হয়। এগুলি সাধারণত টেস্ট কেসগুলোর জন্য প্রাথমিক প্রস্তুতি এবং পরবর্তী কাজ সম্পাদনের জন্য ব্যবহৃত হয়, যেমন টেস্টের আগে ডেটা ইনিশিয়ালাইজ করা বা টেস্টের পরে কোনো ক্লিনআপ কার্যক্রম চালানো।


beforeEach() ফাংশন

beforeEach() ফাংশনটি প্রতিটি টেস্ট কেসের আগে একবার চালানো হয়। এটি সাধারণত টেস্ট কেসগুলোর জন্য প্রস্তুতি হিসেবে ব্যবহৃত হয়, যেমন ডেটা ইনিশিয়ালাইজ বা কোনো নির্দিষ্ট অবস্থা তৈরি করা।

beforeEach() এর কাঠামো:

beforeEach(function() {
  // কোড এখানে থাকবে যা প্রতিটি টেস্টের আগে চালানো হবে
});
  • ব্যবহার: টেস্টের আগে কিছু সেটআপ করতে এটি ব্যবহৃত হয়, যেমন একটি অবজেক্ট তৈরি করা বা ডাটাবেজে ডেটা ইনজেক্ট করা।

উদাহরণ:

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

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

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

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

এখানে:

  • beforeEach(): প্রতিটি it() টেস্টের আগে একটি নতুন Calculator ইনস্ট্যান্স তৈরি করবে।
  • এটি নিশ্চিত করে যে প্রতিটি টেস্ট কেসের আগে আপনি একটি নতুন এবং পরিষ্কার অবস্থা পাবেন, যা টেস্টের ফলাফল সঠিক এবং নির্ভরযোগ্য করতে সাহায্য করে।

afterEach() ফাংশন

afterEach() ফাংশনটি প্রতিটি টেস্ট কেসের পরে একবার চালানো হয়। এটি সাধারণত টেস্টের পরে কোনো ক্লিনআপ বা পরবর্তী কার্যক্রম সম্পাদনের জন্য ব্যবহৃত হয়, যেমন টেস্ট ডেটা মুছে ফেলা বা কোনো অবস্থা পরিবর্তন করা।

afterEach() এর কাঠামো:

afterEach(function() {
  // কোড এখানে থাকবে যা প্রতিটি টেস্টের পরে চালানো হবে
});
  • ব্যবহার: টেস্টের পরে কিছু ক্লিনআপ করতে এটি ব্যবহৃত হয়, যেমন ব্যবহৃত ডেটা মুছে ফেলা বা পরিবেশ পরিবর্তন করা।

উদাহরণ:

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

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

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

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

  afterEach(function() {
    // প্রতিটি টেস্টের পরে কিছু পরিস্কার কাজ করতে পারেন, যেমন লগ আউট করা
    console.log("Test finished");
  });
});

এখানে:

  • afterEach(): প্রতিটি it() টেস্টের পরে একটি মেসেজ লগ করছে যা টেস্ট সম্পন্ন হওয়ার পর পরবর্তী কার্যক্রমের জন্য প্রস্তুতি নিতে সাহায্য করে।
  • এটি টেস্টের পরবর্তী কার্যক্রমে কোনো অপর্যাপ্ত ডেটা বা অবস্থা থাকার ঝুঁকি কমিয়ে দেয়।

beforeEach() এবং afterEach() এর ব্যবহারিক উদাহরণ

আপনি যদি কোনো ডাটাবেজ বা নেটওয়ার্ক কল ব্যবহার করে থাকেন, তবে beforeEach() এবং afterEach() ব্লকগুলো টেস্টের আগে এবং পরে সঠিক পরিবেশ নিশ্চিত করতে সহায়তা করে।

উদাহরণ:

describe("Database Operations", function() {
  let db;

  beforeEach(function() {
    db = new Database();  // প্রতিটি টেস্টের আগে নতুন ডাটাবেজ কানেকশন তৈরি হবে
  });

  it("should insert a record correctly", function() {
    const result = db.insert({ id: 1, name: "Test" });
    expect(result).toBe(true);  // ডাটাবেজে রেকর্ড সঠিকভাবে ইনসার্ট হবে
  });

  it("should retrieve a record correctly", function() {
    db.insert({ id: 1, name: "Test" });
    const record = db.get(1);
    expect(record.name).toBe("Test");  // রেকর্ডটি সঠিকভাবে রিট্রিভ হবে
  });

  afterEach(function() {
    db.clear();  // প্রতিটি টেস্টের পরে ডাটাবেজ ক্লিনআপ হবে
  });
});

এখানে:

  • beforeEach(): প্রতিটি টেস্টের আগে নতুন ডাটাবেজ কানেকশন তৈরি করছে।
  • afterEach(): প্রতিটি টেস্টের পরে ডাটাবেজকে পরিষ্কার (clear) করছে, যাতে পরবর্তী টেস্টে আগের ডেটা প্রভাবিত না করে।

সারাংশ

  • beforeEach(): এটি প্রতিটি টেস্ট কেসের আগে চালানো হয় এবং টেস্ট কেসের জন্য সেটআপ তৈরি করে, যেমন ডেটাবেজ বা অবজেক্ট ইনিশিয়ালাইজ করা।
  • afterEach(): এটি প্রতিটি টেস্ট কেসের পরে চালানো হয় এবং টেস্ট কেসের পর ক্লিনআপ কার্যক্রম সম্পাদন করে, যেমন ডেটা মুছে ফেলা বা অবস্থা পরিবর্তন করা।

এভাবে beforeEach() এবং afterEach() এর মাধ্যমে আপনি আপনার টেস্ট কেসগুলোর পরিবেশকে সঠিকভাবে পরিচালনা করতে পারেন, যার ফলে আপনার টেস্টগুলো আরো নির্ভরযোগ্য এবং কার্যকরী হবে।

Content added By
Promotion

Are you sure to start over?

Loading...