एरे की तुलना दो तरीकों से की जा सकती है:
- वे मेमोरी में एक ही एरे ऑब्जेक्ट को रेफर करते हैं।
- वे अलग ऑब्जेक्ट्स हो सकते हैं लेकिन उनकी सामग्री समान हो सकती है।
केस 1 के लिए, Jasmine toBe मेथड प्रदान करता है। यह रेफरेंस चेक करता है।
उदाहरण
describe("Array Equality", () => {
it("should check for array reference equality", () => {
let arr = [1, 2, 3];
let arr2 = arr;
// सफल - एक ही रेफरेंस
expect(arr).toBe(arr2);
// विफल - रेफरेंस समान नहीं हैं
expect(arr).toBe([1, 2, 3]);
});
});
आउटपुट
Array Equality should check for array equality
Message: Expected [ 1, 2, 3 ] to be [ 1, 2, 3 ].
Tip: To check for deep equality, use .toEqual() instead of .toBe().
केस 2 के लिए हम toEqual मेथड का उपयोग करके एरे की डीप तुलना कर सकते हैं।
उदाहरण
describe("Array Equality", () => {
it("should check for deep equality", () => {
let arr = [1, 2, 3];
let arr2 = arr;
// सफल - एक ही रेफरेंस
expect(arr).toEqual(arr2);
// सफल - अलग रेफरेंस लेकिन समान सामग्री
expect(arr).toEqual([1, 2, 3]);
});
});
आउटपुट
1 spec, 0 failures
नेस्टेड एरे/ऑब्जेक्ट्स
const arr1 = [1, [2, 3], { a: 4 }];
const arr2 = [1, [2, 3], { a: 4 }];
expect(arr1).toEqual(arr2); // पास - डीप इक्वलिटी
expect(arr1).toBe(arr2); // फेल - अलग रेफरेंस
सारांश: toBe === रेफरेंस चेक के लिए, toEqual डीप वैल्यू तुलना के लिए।