ฟังก์ชันและวิธีการทดสอบด้วย Chai

 การทดสอบฟังก์ชันสำหรับการส่งข้อยกเว้นที่ถูกต้อง

เพื่อทดสอบข้อยกเว้น เราสามารถใช้ การ 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 ให้การยืนยันที่หลากหลายซึ่งช่วยให้เราสร้างการยืนยันประเภทต่างๆ บนออบเจกต์ เช่น การตรวจสอบค่าคุณสมบัติ การตรวจสอบการเรียกใช้เมธอด และอื่นๆ

ด้วยการทดสอบวิธีการของออบเจกต์อย่างละเอียด เราสามารถรับประกันความถูกต้องและความน่าเชื่อถือ ซึ่งส่งผลต่อคุณภาพโดยรวมของโค้ดเบสของเรา