وظائف وطرق الاختبار مع 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 يوفر نطاقًا واسعًا من التأكيدات التي تسمح لنا بعمل أنواع مختلفة من التأكيدات على الكائنات ، مثل التحقق من قيم الخاصية ، والتحقق من استدعاءات الطريقة ، والمزيد.

من خلال الاختبار الشامل لأساليب الكائن ، يمكننا ضمان صحتها وموثوقيتها ، مما يساهم في الجودة الشاملة لقاعدة التعليمات البرمجية الخاصة بنا.