Theme
Primary Color

إختبار الحالات الطرفية بدل المثال السهل فقط

الاختبار الجيد يشمل القائمة الفاضية والقيمة على الحد ومدخل غير صالح مش الحالة العادية بس

شغل المثال بإستخدام Node.js لتوضيح الفكرة ويمكن تطبيق نفس المبدأ في لغات تانية

المثال العملي

import assert from 'node:assert/strict';
function average(numbers) {
  if (numbers.length === 0) return null;
  if (!numbers.every(Number.isFinite)) throw new TypeError('Numbers Only');
  return numbers.reduce((sum, value) => sum + value, 0) / numbers.length;
}
assert.equal(average([10, 20]), 15);
assert.equal(average([]), null);
assert.equal(average([0]), 0);
assert.throws(() => average(['10']), TypeError);
console.log('4 Checks Passed');

النتيجة

4 Checks Passed

القيمة null هنا قرار واضح للقائمة الفاضية والصفر نتيجة صحيحة مختلفة عنها والمدخل النصي مرفوض

جرب بنفسك

أضف اختبار أرقام سالبة واختبار Infinity وتأكد من بقاء جميع الاختبارات ناجحة

programming شرح