JasmineJS - การตรวจสอบความเท่าเทียมกัน

จัสมินมีวิธีการมากมายที่ช่วยให้เราตรวจสอบความเท่าเทียมกันของฟังก์ชันและไฟล์ JavaScript ใด ๆ ต่อไปนี้เป็นตัวอย่างบางส่วนเพื่อตรวจสอบเงื่อนไขความเท่าเทียมกัน

ToEqual ()

ToEqual()เป็นตัวจับคู่ที่ง่ายที่สุดที่มีอยู่ในห้องสมุดของจัสมินในตัว เพียงแค่จับคู่ว่าผลลัพธ์ของการดำเนินการที่ให้เป็นอาร์กิวเมนต์ของวิธีนี้ตรงกับผลลัพธ์ของมันหรือไม่

ตัวอย่างต่อไปนี้จะช่วยให้คุณเข้าใจว่าตัวจับคู่ทำงานอย่างไร เรามีไฟล์สองไฟล์ที่จะทดสอบโดยตั้งชื่อว่า“expectexam.js” และอีกสิ่งหนึ่งที่เราต้องทดสอบคือ “expectSpec.js”.

Expectexam.js

window.expectexam = {    
   currentVal: 0,   
};

ExpectSpec.js

describe("Different Methods of Expect Block",function () { 
   
   it("The Example of toEqual() method",function () {   
      //this will check whether the value of the variable  
      // currentVal is equal to 0 or not.  
      expect(expectexam.currentVal).toEqual(0);  
   });
});

เมื่อดำเนินการสำเร็จโค้ดเหล่านี้จะให้ผลลัพธ์ดังต่อไปนี้ จำไว้ว่าคุณต้องเพิ่มไฟล์เหล่านี้ลงในส่วนหัวของไฟล์specRunner.html ไฟล์ตามคำแนะนำในตัวอย่างก่อนหน้านี้

not.toEqual ()

not.toEqual() ทำงานตรงข้ามกับ toEqual () not.toEqual() ใช้เมื่อเราต้องการตรวจสอบว่าค่าไม่ตรงกับเอาต์พุตของฟังก์ชันใด ๆ

เราจะแก้ไขตัวอย่างด้านบนเพื่อแสดงวิธีการทำงาน

ExpectSpec.js

describe("Different Methods of Expect Block",function () { 

   it("The Example of toEqual() method",function () {
      expect(expectexam.currentVal).toEqual(0);  
   });   
   
   it("The Example of not.toEqual() method",function () {  
      //negation  testing expect(expectexam.currentVal).not.toEqual(5); 
   }); 
});

Expectexam.js

window.expectexam = { 
   currentVal: 0,  
};

ในบล็อกความคาดหวังที่สองเรากำลังตรวจสอบว่าค่าของ currentVal เท่ากับ 5 เนื่องจากค่าของ currentVal เป็นศูนย์ดังนั้นการทดสอบของเราผ่านไปและให้เอาต์พุตสีเขียวแก่เรา

เป็น()

toBe()ตัวจับคู่ทำงานในลักษณะเดียวกันกับ toEqual () แต่มีความแตกต่างกันในทางเทคนิค toBe () จับคู่กับประเภทของวัตถุในขณะที่toEqual() ตรงกับความเท่าเทียมกันของผลลัพธ์

ตัวอย่างต่อไปนี้จะช่วยให้คุณเข้าใจหลักการทำงานของตัวจับคู่ toBe () ตัวจับคู่นี้เทียบเท่ากับโอเปอเรเตอร์“ ===” ของ JavaScript ในขณะที่ toEqual () คล้ายกับตัวดำเนินการ“ ==” ของ JavaScript

ExpectSpec.js

describe("Different Methods of Expect Block",function () {  

   it("The Example of toBe() method",function () { 
      expect(expectexam.name).toBe(expectexam.name1);     
   });
});

Expectexam.js

window.expectexam = {
   currentVal: 0, 
   name:"tutorialspoint", 
   name1:tutorialspoint  
};

เราจะปรับเปลี่ยนไฟล์ expectexamไฟล์ JavaScript เราได้เพิ่มตัวแปรใหม่สองตัวname และ name1. โปรดค้นหาความแตกต่างระหว่างตัวแปรที่เพิ่มทั้งสองนี้ - ตัวแปรหนึ่งเป็นประเภทสตริงและอีกตัวแปรหนึ่งไม่ใช่ประเภทสตริง

ภาพหน้าจอต่อไปนี้เป็นผลการทดสอบของเราโดยเครื่องหมายกากบาทสีแดงแสดงว่าค่าทั้งสองนี้ไม่เท่ากันในขณะที่คาดว่าจะเท่ากัน ดังนั้นการทดสอบของเราจึงล้มเหลว

ให้เราเปลี่ยนทั้งสองตัวแปร name และ name1 เป็นตัวแปรประเภท String และรันเหมือนกัน SpecRunner.htmlอีกครั้ง. ตอนนี้ตรวจสอบผลลัพธ์ จะพิสูจน์ได้ว่า toBe () ไม่เพียง แต่จับคู่กับความเท่าเทียมกันของตัวแปรเท่านั้น แต่ยังตรงกับประเภทข้อมูลหรือประเภทวัตถุของตัวแปรด้วย

ไม่ใช่()

ดังที่เห็นก่อนหน้านี้ไม่ใช่ แต่เป็นการปฏิเสธวิธีการ toBe () จะล้มเหลวเมื่อผลลัพธ์ที่คาดไว้ตรงกับผลลัพธ์จริงของฟังก์ชันหรือไฟล์ JavaScript

ต่อไปนี้เป็นตัวอย่างง่ายๆที่จะช่วยให้คุณเข้าใจว่า not.toBe () matcher ทำงานอย่างไร

describe("Different Methods of Expect Block",function () { 
   it("The Example of not.toBe() method",function () { 
      expect(true).not.toBe(false);    
   });
});

ที่นี่จัสมินจะพยายามจับคู่จริงกับเท็จ ในฐานะที่เป็นจริงต้องไม่เหมือนกับเท็จกรณีทดสอบนี้จะใช้ได้และผ่านไปได้