JasmineJS এর Built-in Matchers

Web Development - জ্যাসমিনজেএস (JasmineJS) - Matchers এর ব্যবহার
206

JasmineJS এ matchers হল এমন ফাংশন যা দিয়ে আপনি টেস্টের ফলাফল যাচাই করেন। এটি expect() ফাংশনের সাথে ব্যবহার করা হয়, যাতে আপনি আপনার কোডের প্রত্যাশিত আচরণ বা ফলাফল নিশ্চিত করতে পারেন। JasmineJS এর কিছু বিল্ট-ইন matcher রয়েছে যা আপনি সাধারণত টেস্ট লেখার সময় ব্যবহার করবেন। এই matchers গুলো বিভিন্ন ধরনের অ্যাসারশন বা চেকিং করার জন্য ব্যবহৃত হয়, যেমন মান, অবস্থা, অবজেক্ট ইত্যাদি।


প্রধান Built-in Matchers

JasmineJS এ কিছু সাধারণ এবং গুরুত্বপূর্ণ built-in matchers নিচে উল্লেখ করা হলো:


toBe()

toBe() matcher ব্যবহার করা হয় যখন আপনি দুটি মানের মধ্যে সঠিক সমতা পরীক্ষা করতে চান। এটি strict equality (===) চেক করে।

উদাহরণ:

const result = 2 + 3;
expect(result).toBe(5);  // ২ এবং ৩ যোগ করলে ফলাফল ৫ হবে

এখানে, toBe(5) যাচাই করছে যে result আসলেই ৫ কিনা।


toEqual()

toEqual() matcher সাধারণত অবজেক্ট বা অ্যারের মধ্যে গভীর সমতা পরীক্ষা করতে ব্যবহৃত হয়। এটি deep equality চেক করে, মানে যদি দুটি অবজেক্ট বা অ্যারে সমান ডাটা ধারণ করে তবে তা true রিটার্ন করবে।

উদাহরণ:

const object1 = { name: 'Alice', age: 25 };
const object2 = { name: 'Alice', age: 25 };

expect(object1).toEqual(object2);  // দুটি অবজেক্টের মান সমান হলে true হবে

এখানে, toEqual() matcher দুটি অবজেক্টের গঠন এবং মান তুলনা করে। যদি তাদের মান এবং গঠন সমান হয়, তাহলে এটি পাস করবে।


toBeTruthy() এবং toBeFalsy()

toBeTruthy() এবং toBeFalsy() matcher গুলো মানের truthiness এবং falsiness পরীক্ষা করতে ব্যবহৃত হয়।

  • toBeTruthy(): এটি যাচাই করে যে মানটি সত্য (truthy) কিনা, অর্থাৎ, কোনো মান যদি false, 0, "", null, undefined, বা NaN না হয় তাহলে তা truthy হিসেবে গণ্য হবে।
  • toBeFalsy(): এটি যাচাই করে যে মানটি মিথ্যা (falsy) কিনা, অর্থাৎ, যদি মানটি false, 0, "", null, undefined, বা NaN হয় তবে এটি falsy হবে।

উদাহরণ:

const value = 1;
expect(value).toBeTruthy();  // এটি true হবে কারণ ১ একটি truthy মান

const empty = "";
expect(empty).toBeFalsy();  // এটি true হবে কারণ "" একটি falsy মান

toContain()

toContain() matcher ব্যবহার করা হয় যখন আপনি একটি অ্যারে বা স্ট্রিংয়ের মধ্যে কোনো নির্দিষ্ট মান উপস্থিত কিনা তা পরীক্ষা করতে চান।

উদাহরণ:

const fruits = ["apple", "banana", "mango"];
expect(fruits).toContain("banana");  // অ্যারে-তে 'banana' থাকবে কিনা পরীক্ষা করছে

এখানে, toContain("banana") যাচাই করছে যে fruits অ্যারে-তে "banana" আছে কিনা।


toBeDefined() এবং toBeUndefined()

toBeDefined() এবং toBeUndefined() matcher গুলো পরিবর্তনশীলের মানের উপস্থিতি বা অনুপস্থিতি পরীক্ষা করতে ব্যবহৃত হয়।

  • toBeDefined(): এটি যাচাই করে যে একটি ভেরিয়েবল সংজ্ঞায়িত (defined) আছে কিনা।
  • toBeUndefined(): এটি যাচাই করে যে একটি ভেরিয়েবল অপরিবর্তিত বা undefined আছে কিনা।

উদাহরণ:

let user;
expect(user).toBeUndefined();  // user ভেরিয়েবলটি undefined কিনা পরীক্ষা করছে

user = "Alice";
expect(user).toBeDefined();  // user এখন defined, তাই এটি true হবে

toBeNull()

toBeNull() matcher ব্যবহার করা হয় একটি ভেরিয়েবলের মান null কিনা পরীক্ষা করতে।

উদাহরণ:

const user = null;
expect(user).toBeNull();  // এটি true হবে কারণ user এর মান null

এখানে, toBeNull() যাচাই করছে যে user এর মান null কিনা।


toThrow() এবং toThrowError()

toThrow() এবং toThrowError() matcher গুলো ব্যবহার করা হয় যাচাই করার জন্য যে কোনো ফাংশন এক্সেপশন বা এরর থ্রো করছে কিনা।

  • toThrow(): এটি পরীক্ষা করে যে ফাংশনটি কোনো এক্সেপশন থ্রো করছে কিনা।
  • toThrowError(): এটি আরো নির্দিষ্ট ভাবে যে কোন নির্দিষ্ট এরর টাইপ বা মেসেজ থ্রো করছে কিনা, তা পরীক্ষা করে।

উদাহরণ:

function throwError() {
  throw new Error("Something went wrong");
}

expect(throwError).toThrowError("Something went wrong");  // এটি true হবে

এখানে, toThrowError() যাচাই করছে যে throwError() ফাংশনটি "Something went wrong" মেসেজ সহ এরর থ্রো করছে।


toMatch()

toMatch() matcher ব্যবহার করা হয় স্ট্রিংগুলোর মধ্যে নির্দিষ্ট প্যাটার্ন বা রেগুলার এক্সপ্রেশন ম্যাচ করতে।

উদাহরণ:

const message = "Hello, Jasmine!";
expect(message).toMatch(/Jasmine/);  // এটি true হবে কারণ 'message' স্ট্রিংয়ে 'Jasmine' রয়েছে

এখানে, toMatch() যাচাই করছে যে "Hello, Jasmine!" স্ট্রিংটি "Jasmine" প্যাটার্নটি ধারণ করে কিনা।


সারাংশ

JasmineJS এর built-in matchers টেস্টিং প্রক্রিয়াকে আরও সহজ এবং কার্যকর করে তোলে। আপনি বিভিন্ন ধরনের matchers ব্যবহার করে আপনার টেস্টের ফলাফল যাচাই করতে পারেন, যেমন:

  • toBe(): মানের সঠিক সমতা পরীক্ষা।
  • toEqual(): গভীর সমতা পরীক্ষা (objects/arrays)।
  • toBeTruthy() / toBeFalsy(): সত্য/মিথ্যা মান যাচাই।
  • toContain(): অ্যারে বা স্ট্রিংয়ে কিছু রয়েছে কিনা পরীক্ষা।
  • toThrow() / toThrowError(): এরর বা এক্সেপশন থ্রো করছে কিনা পরীক্ষা।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...