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);
});
});
ที่นี่จัสมินจะพยายามจับคู่จริงกับเท็จ ในฐานะที่เป็นจริงต้องไม่เหมือนกับเท็จกรณีทดสอบนี้จะใช้ได้และผ่านไปได้