Junit Assert & AssertEquals مع مثال
ما هو Junit Assert؟
Assert هي طريقة مفيدة في تحديد حالة النجاح أو الفشل لحالة الاختبار، يتم توفير طرق Assert بواسطة الفئة org.junit.Assert التي تمتد إلى فئة java.lang.Object.
هناك أنواع مختلفة من التأكيدات مثل Boolean وNull وIdentical وما إلى ذلك.
توفر Junit فئة تسمى Assert، والتي توفر مجموعة من طرق التأكيد المفيدة في كتابة حالات الاختبار واكتشاف فشل الاختبار
يتم توفير أساليب التأكيد من قبل الفصل org.junit.تأكيد الذي يمتد java.lang.Object فئة.
JUnit تأكيد الأساليب
منطقية
إذا كنت تريد اختبار الشروط المنطقية (صواب أو خطأ)، يمكنك استخدام طرق التأكيد التالية
- تأكيد صحيح (شرط)
- تأكيد خطأ (شرط)
هنا الشرط هو قيمة منطقية.
كائن فارغ
إذا كنت تريد التحقق من القيمة الأولية لكائن/متغير، فلديك الطرق التالية:
- تأكيدNull(كائن)
- تأكيدNotNull(كائن)
هنا الكائن Java موضوع على سبيل المثال AssureNull(actual);
مطابق
إذا كنت تريد التحقق مما إذا كانت الكائنات متطابقة (أي مقارنة مرجعين لنفس كائن جافا)، أو مختلفة.
- تأكيدSame (المتوقع، الفعلي)، سيعود صحيحا إذا المتوقع == الفعلي
- AssuredNotSame (متوقع، فعلي)
تأكيد يساوي
إذا كنت تريد اختبار المساواة بين كائنين، فلديك الطرق التالية
- التأكيد على المساواة (المتوقع، الفعلي)
سيعود صحيحًا إذا: المتوقع.يساوي (الفعلي) إرجاع صحيح.
تأكيد صفيف يساوي
إذا كنت تريد اختبار مساواة المصفوفات، فلديك الطرق التالية كما هو موضح أدناه:
- تأكيدArrayEquals(المتوقع، الفعلي)
يجب استخدام الطريقة المذكورة أعلاه إذا كانت المصفوفات لها نفس الطول، لكل قيمة صالحة لـ i، يمكنك التحقق من ذلك كما هو موضح أدناه:
- تأكيد يساوي (المتوقع [i]، الفعلي [i])
- تأكيدArrayEquals(المتوقع[i]، الفعلي[i])
رسالة فشل
إذا كنت تريد رمي أي خطأ في التأكيد، لديك يفشل() يؤدي ذلك دائمًا إلى حكم فاشل.
- فشل (رسالة)؛
يمكن أن يكون لديك طريقة التأكيد مع إضافة خيط المعلمة كمعلمة أولى. سيتم إلحاق هذه السلسلة في رسالة الفشل في حالة فشل التأكيد. على سبيل المثال فشل (رسالة) يمكن أن يكتب كما
- تأكيد يساوي (رسالة، متوقع، فعلي)
JUnit أكد
لديك تأكيد يساوي (أ، ب) والذي يعتمد على يساوي () طريقة فئة الكائن.
- هنا سيتم تقييمه أ.يساوي(ب).
- هنا يتم استخدام الفصل قيد الاختبار لتحديد علاقة المساواة المناسبة.
- إذا لم يتجاوز الفصل يساوي () طريقة هدف فئة، وسوف تحصل على السلوك الافتراضي ل يساوي () الطريقة، أي هوية الكائن.
If a و b هي البدائيات مثل بايت, مادبا, منطقية، إلخ. ثم سيتم إجراء ما يلي لـ assertEquals(a,b):
a و b سيتم تحويله إلى نوع كائن المجمع المكافئ (بايت، عدد صحيح, منطقيةالخ)، وبعد ذلك أ.يساوي (ب) سيتم تقييمها.
على سبيل المثال: ضع في اعتبارك أن السلاسل المذكورة أدناه لها نفس القيم، فلنختبرها باستخدام AcceptTrue
String obj1="Junit"; String obj2="Junit"; assertEquals(obj1,obj2);
ستُرجع عبارة التأكيد المذكورة أعلاه صحيحًا كما تُرجع obj1.equals(obj2) صحيحًا.
تأكيدات النقطة العائمة
عندما تريد مقارنة أنواع النقاط العائمة (على سبيل المثال مضاعفة or الطفو)، فأنت بحاجة إلى معلمة إضافية مطلوبة دلتا لتجنب مشاكل أخطاء التقريب أثناء إجراء مقارنات الفاصلة العائمة.
يتم تقييم التأكيد على النحو المبين أدناه:
- الرياضيات.abs(المتوقع – الفعلي) <= دلتا
فمثلا:
يؤكد يساوي (أDoubleالقيمة، أخرىDoubleالقيمة، 0.001 )
JUnit تأكيد المثال
يوضح المثال أدناه كيفية تأكيد الشرط باستخدام JUnit تأكيد الأساليب.
لنقم بإنشاء فئة اختبار بسيطة تسمى برنامج Junit4AssertionTest.java وفئة عداء الاختبار TestRunner.java.
ستقوم بإنشاء عدد قليل من المتغيرات وبيانات التأكيد المهمة في JUnit.
في هذا المثال، ستقوم بتنفيذ فئة الاختبار الخاصة بنا باستخدام TestRunner.java
الخطوة 1) دعنا ننشئ فئة تغطي جميع طرق بيان التأكيد المهمة في junit:
برنامج Junit4AssertionTest.java
package guru99.junit;
import static org.junit.Assert.*;
import org.junit.Test;
public class Junit4AssertionTest {
@Test
public void testAssert(){
//Variable declaration
String string1="Junit";
String string2="Junit";
String string3="test";
String string4="test";
String string5=null;
int variable1=1;
int variable2=2;
int[] airethematicArrary1 = { 1, 2, 3 };
int[] airethematicArrary2 = { 1, 2, 3 };
//Assert statements
assertEquals(string1,string2);
assertSame(string3, string4);
assertNotSame(string1, string3);
assertNotNull(string1);
assertNull(string5);
assertTrue(variable1<variable2);
assertArrayEquals(airethematicArrary1, airethematicArrary2);
}
}
الخطوة 2) تحتاج إلى إنشاء فئة عداء اختبار لتنفيذ الفئة أعلاه:
TestRunner.java
package guru99.junit;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(Junit4AssertionTest.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println("Result=="+result.wasSuccessful());
}
}
الخطوة 3) دعونا نحلل المخرجات المتوقعة خطوة بخطوة:
خذ بعين الاعتبار جميع عبارات التأكيد واحدة تلو الأخرى:
- AssureEquals(string1,string2);
الآن قارن string1=” Junit” مع string2=” Junit” مع طريقة equals من فئة الكائن. استبدال طريقة assertEquals من طريقة java.lang.Object.equals() :
string1.equals(string2)=> يُرجع صحيحًا
لذلك سوف يُعاد التأكيد على (string1,string2). صحيح.
- تأكيدSame(string3, string4);
وظيفة "assertSame ()" هي التحقق من أن الكائنين يشيران إلى نفس الكائن.
نظرًا لأن السلسلة 3 = "اختبار" وسلسلة 4 = "اختبار" تعني أن كلاً من السلسلة 3 والسلسلة 4 من نفس النوع، لذا سيعود AcceptSame(string3, string4) صحيح.
- AssureNotSame(string1, string3);
وظيفة "assertNotSame()" هي التحقق من أن الكائنين لا يشيران إلى نفس الكائن.
نظرًا لأن string1=”Junit” وstring3=”test” يعني أن كلًا من string1 وstring3 من نوعين مختلفين، لذا فإن assertNotSame(string1, string3) سيرجع صحيح.
- AssureNotNull(string1);
وظيفة "assertNotNull()" هي التحقق من أن الكائن ليس فارغًا.
نظرًا لأن string1= "Junit" وهي قيمة غير فارغة، فإن assertNotNull(string1) سيرجع صحيح.
- تأكيدNull(string5);
وظيفة "assertNull()" هي التحقق من أن الكائن فارغ.
بما أن string5= null وهي قيمة فارغة، لذا سيعود AcceptNull(string5). صحيح.
- تأكيد صحيح (متغير 1
وظيفة "assertTrue()" هي التحقق من صحة الشرط.
بما أن المتغير 1 = 1 والمتغير 2 = 2، مما يوضح ذلك المتغير 1 صحيح.
- AssurerArrayEquals(airethematicArrary1, airethematicArrary2);
تتمثل وظيفة "assertArrayEquals()" في التحقق من تساوي المصفوفة المتوقعة والمصفوفة الناتجة. قد يكون نوع المصفوفة int أو long أو short أو char أو byte أو java.lang.Object.
نظرًا لأن airethematicArrary1 = { 1, 2, 3 } و airethematicArrary2 = { 1, 2, 3 } مما يوضح أن كلا المصفوفتين متساويتان، لذا سيعود AcceptArrayEquals(airethematicArrary1, airethematicArrary2) صحيح
نظرًا لأن جميع السبعة يؤكدون بيانات برنامج Junit4AssertionTest.java تُرجع الفئة صحيحًا، لذلك عند تنفيذ فئة تأكيد الاختبار، فإنها ستُرجع اختبارًا ناجحًا. (انظر الإخراج أدناه)
الخطوة 4) انقر بزر الماوس الأيمن على Junit4AssertionTest.java وانقر فوق runAs->JUnit. سترى الإخراج كما هو موضح أدناه:
يُظهر الإخراج أعلاه نتيجة اختبار ناجحة كما هو متوقع.
ملخص
في هذا البرنامج التعليمي، تعلمت جميع الأنواع المهمة من طرق التأكيد التي يوفرها JUnit. لقد رأيت أيضًا أمثلة لعبارات التأكيد. مما يوضح أنه إذا كانت جميع عبارات التأكيد صحيحة، فسوف تُرجع واجهة المستخدم الرسومية للاختبار نتيجة صحيحة وإذا فشل الاختبار الفردي فسوف تُرجع نتيجة فاشلة.

