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

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

เพื่อทดสอบข้อยกเว้น เราสามารถใช้throwคำยืนยันที่ชัยให้ไว้ได้ การยืนยันนี้ช่วยให้เราระบุประเภทของข้อยกเว้นที่ควรโยนทิ้งและรายละเอียดเพิ่มเติมที่เราต้องการตรวจสอบ ด้วยการรวมการยืนยันนี้ในกรณีทดสอบของเรา เราสามารถมั่นใจได้ว่าฟังก์ชันของเราทำงานตามที่คาดไว้และจัดการกับเงื่อนไขข้อผิดพลาดได้อย่างเหมาะสม

ลองพิจารณาตัวอย่างที่เรามีฟังก์ชันที่หารสองจำนวน เราต้องการให้แน่ใจว่าฟังก์ชันส่งข้อยกเว้นเมื่อหารด้วยศูนย์ เราสามารถเขียนกรณีทดสอบโดยใช้throwการยืนยันของ Chai เพื่อตรวจสอบว่าฟังก์ชันโยนค่า 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เมื่อหารด้วยศูนย์ การยืนยันถูกรวมไว้ในฟังก์ชันเพื่อให้สามารถตรวจจับข้อยกเว้นและดำเนินการตรวจสอบที่จำเป็นได้

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

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

ในบทความที่สามของซีรีส์ "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);
  });
});

ในตัวอย่างข้างต้น เราใช้expectการยืนยันของ Chai เพื่อตรวจสอบว่า method ของcalculatorobject ส่งคืนผลลัพธ์ที่คาดหวัง แต่ละกรณีทดสอบมุ่งเน้นไปที่วิธีการเฉพาะและตรวจสอบว่าส่งคืนผลลัพธ์ที่ถูกต้องสำหรับอินพุตที่กำหนดหรือไม่

ด้วยการเรียกใช้กรณีทดสอบเหล่านี้ เราสามารถมั่นใจได้ว่าวิธีการของcalculatorออบเจกต์ทำงานตามที่คาดไว้และให้ผลลัพธ์ที่แม่นยำ

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

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