تحتوي فئة تأكيدات JUnit على مجموعة من الطرق الثابتة التي تسمح لك بإجراء اختبارات الوحدة. التأكيدات هي إحدى ميزات JUnit الأساسية. هذه الفئة لديها أكثر من خمسين طريقة متنوعة. ستفشل بعض اختبارات فئة Assertions إذا كان الشرط صحيحًا ، بينما سيفشل البعض الآخر إذا كان الشرط خاطئًا.
تحتوي فئة Assertions أيضًا على العديد من الطرق المحملة بشكل زائد. تحتوي كل طريقة تأكيد على طريقتين على الأقل محملين بشكل زائد. اكتشف بعض طرق فئات Assertions الأكثر شيوعًا وتعرف على كيفية استخدامها لإجراء اختبارات الوحدة.
طريقة AssertEquals
طريقة JUnit 5 assertEquals لها أكثر من عشرة اختلافات. هذه الطريقة هي إحدى طرق فئات Assertions الأكثر شيوعًا. يأخذ شكل واحد من طريقة assertEquals قيمة متوقعة والدالة التي تريد تقييمها (القيمة الفعلية). المتغير الرئيسي الثاني يأخذ وسيطة ثالثة إضافية. هذه رسالة خطأ ستظهر إذا كان ملف اختبار وحدة JUnit فشل.
يحدث التحميل الزائد لطريقة assertEquals مع أنواع بيانات مختلفة. تأخذ بعض عمليات assertEquals overload متغيرًا رابعًا يسمى دلتا. تستبدل الإصدارات الأخرى سلسلة الفشل بواجهة وظيفية للمورد ، على شكل ملف تعبير لامدا.
AssertionsMethods فئة جافا
حزمة com.program.
عامصف دراسيطرق التأكيدات{
عامثابتةintميدان(int عدد){
إرجاع الأسطوانات * الأسطوانات ؛
}
}
فئة Java AssertionsMethods أعلاه لها طريقة واحدة تسمى مربع. تأخذ طريقة التربيع قيمة عددية وتعيد مربعها. لاختبار طريقة المربع وأي طريقة مستقبلية من فئة AssertionsMethods ، ستحتاج إلى إنشاء حالة اختبار JUnit.
حالة اختبار AssertionsMethodsTest JUnit
حزمة com.program.
يستوردثابتةغزاله.junit.يجزم.assertEquals;
يستوردثابتةغزاله.junit.كوكب المشتري.apiالتأكيدات.*;يستوردغزاله.junit.كوكب المشتري.api.اختبار;
صف دراسيAssertionsMethodsTest{
@اختبار
فارغاختبار(){
أكد(25, طرق التأكيد.ميدان(5));
تأكيد المساواة (36 ، طرق التأكيد ، مربع (6) ، "قيم المربع الخاص بك غير متطابقة.");
تأكيد المساواة (49 ، طرق التأكيد ، مربع (7) ، () ->"قيم المربع الخاص بك غير متطابقة.");
}
}
تستخدم طريقة testSquare () ثلاثة أشكال مختلفة من assertEquals () لاختبار طريقة المربع (). يعتبر كل assertEquals () ناجحًا ، حيث تتطابق جميع القيم المتوقعة مع القيم الفعلية التي يتم إرجاعها بواسطة طريقة square ().
طريقة assertNull
تحتوي فئة JUnit Assertions على ثلاث طرق assertNull بالضبط. تأخذ كل من هذه الطرق وسيطة واحدة أو أكثر وتؤكد ما إذا كان الكائن المعطى فارغًا. إذا لم يكن الكائن المحدد فارغًا ، فسيفشل الاختبار.
@اختبار
عامفارغtestStringValue(){
سلسلة سلسلة القيمة = لا شيء;
assertNull (stringValue) ،
assertNull (سلسلة القيمة ، "قيمة السلسلة الخاصة بك ليست فارغة");
assertNull (سلسلة قيمة ، () ->"قيمة السلسلة الخاصة بك ليست فارغة");
}
تأخذ طريقة assertNull () الأولى كائن سلسلة وتتحقق مما إذا كانت خالية. تأخذ طريقة assertNull () الثانية كائن سلسلة ورسالة سلسلة لعرضها في حالة فشل الاختبار. تأخذ طريقة () assertNull الثالثة والأخيرة الكائن الذي تريد تقييمه وواجهة وظيفية للمورد.
في حالة الاختبار أعلاه ، تعمل واجهة المورد كهدف تعيين لتعبير lambda. يُنشئ تعبير lambda رسالة خطأ إذا فشل الاختبار.
طريقة assertTrue
طريقة assertTrue () لها ستة أشكال مختلفة. تؤكد كل طريقة ما إذا كان شرط معين صحيحًا. إذا كان شرط assertTrue () خاطئًا ، فسيفشل الاختبار.
@اختبار
فارغاختبار الأرقام(){
int عدد 1 = 10;
int عدد 2 = 16;
int عدد 3 = 26;
تأكيد صحيح (عدد 1 < عدد 2) ؛
تأكيد صحيح (عدد 3 > عدد 2 ، "حالتك ليست صحيحة.");
تأكيد صحيح (عدد 1 < العدد 3 ، () ->" حالتك ليست صحيحة.");
تأكيد صحيح (() -> عدد 1٪ 2 == 0) ؛
تأكيد صحيح (() -> عدد 2٪ 2 == 0 ، "القيمة الخاصة بك ليست رقمًا زوجيًا.");
تأكيد صحيح (() -> num3٪ 2 == 0، () ->"القيمة الخاصة بك ليست رقمًا زوجيًا.");
}
توضح طريقة testEvenNumbers () كيفية استخدام جميع طرق assertTrue () الستة. جميع الطرق المذكورة أعلاه صحيحة ، وبالتالي ، يتم تنفيذ اختبار الوحدة هذا دون فشل أو خطأ.
- assertTrue (الشرط المنطقي): تأخذ هذه الطريقة شرطًا منطقيًا وتؤكد ما إذا كانت صحيحة. يوضح مثال هذه الطريقة في الكود أعلاه ما إذا كانت قيمة العدد الصحيح الأول أقل من القيمة الثانية.
- assertTrue (شرط منطقي ، رسالة سلسلة): تأخذ هذه الطريقة شرطًا منطقيًا لاختباره وسلسلة لعرضها إذا كانت خاطئة.
- assertTrue (حالة منطقية ، مورد
messageSupplier): تأخذ هذه الطريقة واجهة وظيفية منطقية ومورد ، كتعبير لامدا. يحتوي مورد الرسالة على سلسلة لعرضها إذا كانت الحالة المنطقية خاطئة. - assertTrue (BooleanSupplier booleanSupplier): تأخذ هذه الطريقة واجهة وظيفية BooleanSupplier ، في شكل تعبير lambda يتم تقييمه إلى صح أو خطأ. يستخدم مثال هذه الطريقة في الكود تعبير لامدا. يختبر باقي العدد الصحيح الأول مقسومًا على اثنين لتحديد ما إذا كان زوجيًا أم فرديًا.
- assertTrue (BooleanSupplier booleanSupplier ، String message): تأخذ هذه الطريقة واجهة وظيفية BooleanSupplier في شكل تعبير lambda. يتطلب أيضًا طباعة رسالة سلسلة إذا لم يكن BooleanSupier صحيحًا.
- assertTrue (BooleanSupplier booleanSupplier، مورد
messageSupplier): تأخذ هذه الطريقة واجهة وظيفية BooleanSupplier للتأكيد. كما يأخذ أيضًا واجهة وظيفية للمورد ، وهي عبارة عن تعبير lambda يقوم بطباعة قيمة سلسلة إذا فشل الاختبار.
طريقة التأكيد على الخطأ
طريقة assertFalse () هي عكس طريقة assertTrue (). تقيّم هذه الطريقة شرطًا معينًا لمعرفة ما إذا كانت خاطئة. إذا كان شرط معين صحيحًا ، فسيفشل اختبار assertFalse (). يحتوي أسلوب assertFalse () أيضًا على ستة متغيرات تقبل نفس الوسيطات مثل نظيراتها من assertTrue ().
@اختبار
فارغtestNotEvenNumbers(){
int عدد 1 = 11;
int عدد 2 = 17;
int عدد 3 = 27;
تأكيد خطأ (عدد 2 < عدد 1) ؛
تأكيد خطأ (عدد 2 > عدد 3 ، " حالتك ليست خاطئة.");
تأكيد خطأ (عدد 3 < العدد 1 ، () ->" حالتك ليست خاطئة.");
تأكيد خطأ (() -> عدد 1٪ 2 == 0) ؛
تأكيد خطأ (() -> عدد 2٪ 2 == 0 ، "القيمة الخاصة بك هي عدد زوجي.");
تأكيد خطأ (() -> num3٪ 2 == 0، () ->"القيمة الخاصة بك هي عدد زوجي.");
}
تؤدي جميع طرق assertFalse () الستة في طريقة testNotEvenNumbers () إلى خطأ ، مما يعني أن اختبارات assertFalse () ناجحة.
فوائد اختبار الوحدة
اختبار الوحدة هو جزء لا يتجزأ من عملية تطوير البرمجيات. تفشل مشاريع البرامج الكبيرة لأسباب مختلفة ، بدءًا من الفرق التي تعمل عليها إلى مناهج التطوير.
الغرض من اختبار الوحدة هو القضاء على فشل البرنامج من خلال توفير الكشف المبكر عن الأخطاء. يتطلب ذلك من الفرق تطوير مواصفات واضحة ، وتحسين تصميم البرامج من خلال توثيق الأخطاء ، وتقديم الدعم لصيانة البرامج.
اختبار الوحدة ليس هو نهج اختبار البرامج الوحيد الذي يجب عليك استخدامه في دورة حياة التطوير الخاصة بك ، إنه مجرد مكان جيد جدًا للبدء.