การทดสอบฟังก์ชันสำหรับการส่งข้อยกเว้นที่ถูกต้อง
เพื่อทดสอบข้อยกเว้น เราสามารถใช้ การ throw
ยืนยันโดย Chai การยืนยันนี้ช่วยให้เราระบุประเภทของข้อยกเว้นที่ควรโยนทิ้งและรายละเอียดเพิ่มเติมที่เราต้องการตรวจสอบ ด้วยการรวมการยืนยันนี้ในกรณีทดสอบของเรา เราสามารถมั่นใจได้ว่าฟังก์ชันของเราทำงานตามที่คาดไว้และจัดการกับเงื่อนไขข้อผิดพลาดได้อย่างเหมาะสม
ลองพิจารณาตัวอย่างที่เรามีฟังก์ชันที่หารสองจำนวน เราต้องการให้แน่ใจว่าฟังก์ชันส่งข้อยกเว้นเมื่อหารด้วยศูนย์ เราสามารถเขียนกรณีทดสอบโดยใช้ การยืนยัน Chai ของ ' throw
เพื่อตรวจสอบว่าฟังก์ชันโยน a DivideByZeroError
เมื่อหารด้วยศูนย์ได้อย่างถูกต้องหรือไม่
const { expect } = require('chai');
function divide(a, b) {
if(b === 0) {
throw new Error('DivideByZeroError');
}
return a / b;
}
describe('divide',() => {
it('should throw DivideByZeroError when dividing by zero',() => {
expect(() => divide(10, 0)).to.throw('DivideByZeroError');
});
it('should return the correct result when dividing two numbers',() => {
expect(divide(10, 5)).to.equal(2);
});
});
ในตัวอย่างข้างต้น เราใช้ to.throw
การยืนยันเพื่อตรวจสอบว่า divide
ฟังก์ชันส่งค่า a DivideByZeroError
เมื่อหารด้วยศูนย์ การยืนยันถูกรวมไว้ในฟังก์ชันเพื่อให้สามารถตรวจจับข้อยกเว้นและดำเนินการตรวจสอบที่จำเป็นได้
ด้วยการรวมการทดสอบสำหรับการโยนข้อยกเว้นที่ถูกต้อง เราสามารถมั่นใจได้ว่าฟังก์ชันของเราจัดการกับเงื่อนไขข้อผิดพลาดได้อย่างเหมาะสม และให้ข้อเสนอแนะที่มีความหมายเมื่อเกิดสถานการณ์ที่ไม่คาดคิด สิ่งนี้ช่วยปรับปรุงคุณภาพโดยรวมและความน่าเชื่อถือของโค้ดของเรา
โดยสรุป ฟังก์ชันการทดสอบที่มีข้อยกเว้นเป็นส่วนสำคัญของการทดสอบซอฟต์แวร์ ด้วย การยืนยัน Chai ของ ' เรา throw
สามารถตรวจสอบได้อย่างง่ายดายว่าฟังก์ชันของเรามีข้อยกเว้นที่คาดไว้เมื่อจำเป็น ด้วยการรวมการทดสอบเหล่านี้เข้ากับกลยุทธ์การทดสอบของเรา เราสามารถปรับปรุงความทนทานของแอปพลิเคชันของเราและมอบประสบการณ์ผู้ใช้ที่ดีขึ้น
ในบทความที่สามของซีรีส์ "Node.js, Mocha และ Chai " เราจะสำรวจวิธีทดสอบฟังก์ชันและวิธีการโดยใช้ Chai. Chai เป็นไลบรารีการยืนยันที่มีประสิทธิภาพสำหรับการทดสอบค่าและผลลัพธ์ใน JavaScript โค้ด
วิธีการทดสอบวัตถุและพฤติกรรมของพวกเขา
ใน การ ตรวจสอบเมธอดของอ็อบเจกต์ เราสามารถใช้การยืนยันที่มีให้โดยกรอบการทดสอบ เช่น Mocha และ Chai การยืนยันเหล่านี้ช่วยให้เราสามารถยืนยันเกี่ยวกับคุณสมบัติและพฤติกรรมของวัตถุได้
ลองพิจารณาตัวอย่างที่เราเรียกวัตถุที่มี calculator
วิธีการบวก การลบ การคูณ และการหาร เราต้องการให้แน่ใจว่าวิธีการเหล่านี้ให้ผลลัพธ์ที่ถูกต้อง เราสามารถเขียนกรณีทดสอบโดยใช้ Chai การยืนยันของ ' เพื่อตรวจสอบพฤติกรรมของวิธีการเหล่านี้
const { expect } = require('chai');
const calculator = {
add:(a, b) => a + b,
subtract:(a, b) => a- b,
multiply:(a, b) => a * b,
divide:(a, b) => a / b,
};
describe('calculator',() => {
it('should return the correct sum when adding two numbers',() => {
expect(calculator.add(5, 3)).to.equal(8);
});
it('should return the correct difference when subtracting two numbers',() => {
expect(calculator.subtract(5, 3)).to.equal(2);
});
it('should return the correct product when multiplying two numbers',() => {
expect(calculator.multiply(5, 3)).to.equal(15);
});
it('should return the correct quotient when dividing two numbers',() => {
expect(calculator.divide(6, 3)).to.equal(2);
});
});
ในตัวอย่างด้านบน เราใช้ การยืนยัน Chai ของ ' expect
เพื่อยืนยันว่าเมธอดของ calculator
ออบเจกต์ส่งคืนผลลัพธ์ที่คาดไว้ แต่ละกรณีทดสอบมุ่งเน้นไปที่วิธีการเฉพาะและตรวจสอบว่าส่งคืนผลลัพธ์ที่ถูกต้องสำหรับอินพุตที่กำหนดหรือไม่
ด้วยการเรียกใช้กรณีทดสอบเหล่านี้ เราสามารถมั่นใจได้ว่าวิธีการของ calculator
ออบเจกต์ทำงานตามที่คาดไว้และให้ผลลัพธ์ที่แม่นยำ
นอกเหนือจากการตรวจสอบค่าที่ส่งคืนของเมธอดแล้ว เรายังสามารถใช้การยืนยันเพื่อตรวจสอบคุณสมบัติและพฤติกรรมอื่นๆ ของวัตถุได้อีกด้วย Chai ให้การยืนยันที่หลากหลายซึ่งช่วยให้เราสร้างการยืนยันประเภทต่างๆ บนออบเจกต์ เช่น การตรวจสอบค่าคุณสมบัติ การตรวจสอบการเรียกใช้เมธอด และอื่นๆ
ด้วยการทดสอบวิธีการของออบเจกต์อย่างละเอียด เราสามารถรับประกันความถูกต้องและความน่าเชื่อถือ ซึ่งส่งผลต่อคุณภาพโดยรวมของโค้ดเบสของเรา