يتم استخدام بيان التأكيد في Java لاختبار بعض الافتراضات حول حالة البرنامج أثناء التنفيذ. وهذا يساعد على اكتشاف الأخطاء وتصحيح أخطاء البرنامج بسهولة. تتم كتابة بيان التأكيد في Java باستخدام الكلمة الأساسية تأكيد Java متبوعة بتعبير منطقي. إذا تم تقييم التعبير على أنه صحيح، فسيتم تمرير التأكيد بصمت ويقوم البرنامج بمهمته. إذا تم تقييمه على خطأ، فسيفشل التأكيد ويتم طرح خطأ تأكيدي . لنأخذ مثالاً لبرنامج يحتوي على تأكيدات Java.
//Assertion in Java example
public class AssertDemo1 {
public static void main(String[] args) {
int x = 5;
assert x == 5 : "x should be 5";
System.out.println(x);
}
}
هنا يكون التعبير صحيحًا، لذا يواصل البرنامج وظيفته. الإخراج هو تماما كما كان متوقعا أن يكون:
5
مثال على خطأ التأكيد
في Java، يعد AssertionError فئة فرعية من فئة الخطأ ويتم طرحه عند فشل التأكيد. تُستخدم التأكيدات في Java عادةً للتحقق من صحة الشروط المسبقة أو الشروط اللاحقة أو الثوابت. كما قلنا أدناه، يتم طرح خطأ التأكيد عندما يفشل تقييم بيان التأكيد إلى صحيح. الآن دعونا نعيد كتابة برنامجنا بحيث يكون التعبير المنطقي خاطئًا.//AssertionError example
public class AssertDemo1 {
public static void main(String[] args) {
int x = 5;
assert x == 7 : "x should be 7";
//here should be AssertionError
System.out.println(x);
}
}
حسنًا ، نقوم بتشغيله والإخراج هو ...
5
لقد حدث خطأ ما بالتأكيد في مثالنا! يجب أن يكون لدينا خطأ تأكيد هنا لأن x لدينا هو 5 والتأكيد يتوقع أن يكون 7. ما الخطأ هنا؟ من المهم ملاحظة أنه يمكن تعطيل تأكيدات Java في JVM، لذلك لا ينبغي استخدامها كوسيلة وحيدة للتحقق من الأخطاء في البرنامج. إنها مفيدة لتصحيح الأخطاء والاختبار، ولكن لا ينبغي الاعتماد عليها في كود الإنتاج. لذا، لاستخدام التأكيدات، تحتاج إلى تمكينها باستخدام خيار vm -ea (أو -enableassertions). إذا كنت تعمل باستخدام سطر الأوامر، فيمكنك استخدام الأمر التالي لبرنامجك AssertDemo1:
جافا -ea AssertDemo1
إذا قمت بتمكين التأكيدات وأعدت تشغيل نفس البرنامج، فستحصل على ما يلي:
استثناء في مؤشر الترابط "الرئيسي" java.lang.AssertionError: x يجب أن يكون 7 في AssertDemo1.main(AssertDemo1.java:4)
هذا هو بيت القصيد.
كيفية تمكين الاستثناءات في IntelliJ IDEA
- انتقل إلى قائمة التشغيل → تحرير التكوينات....
- أدخل المعلمة -ea في خيارات السطر VM
تأكيدات لاختبار الوحدة في جافا
في Java، يعد اختبار الوحدة أسلوبًا يتضمن اختبار وحدات فردية من التعليمات البرمجية للتأكد من أنها تعمل بشكل صحيح. تُستخدم التأكيدات بشكل شائع في اختبار الوحدة في Java للتحقق من أن التعليمات البرمجية التي تم اختبارها تعمل كما هو متوقع. في اختبار الوحدة، يتم اختبار وحدة من التعليمات البرمجية، على سبيل المثال طريقة معينة، بشكل منفصل للتأكد من أنها تعمل بشكل صحيح في ظل ظروف ومدخلات مختلفة. دعونا نحصل على مثال. لدينا هنا آلة حاسبة بسيطة لجمع الأعداد الصحيحة، وطرحها، وضربها، وقسمتها.public class MyMath {
public static int add (int a, int b) {
return a + b;
}
public static int sub (int a, int b) {
return a - b;
}
public static int mult (int a, int b) {
return a*b;
}
public static double div (int a, int b) {
return a/b;
}
}
بالطبع، هناك العديد من الأسئلة حول هذا التنفيذ (على سبيل المثال، ماذا يحدث إذا أضفنا أكبر عدد صحيح إلى رقم آخر)، ولكن الآن سنترك هذا التنفيذ كما هو. لنكتب الآن فصلًا سنختبر فيه أساليب فصل myMath بمساعدة اختبارات الوحدة. صحيح، اثنان منهم فقط. في الواقع، يمكنك كتابة اختبارات تتحقق من الوسائط للتأكد من صحتها، وما إذا كانت الطريقة تتعامل مع حالات خاصة، وما إلى ذلك. ولكن هنا سنقتصر على إجراء اختبارين فقط لأغراض العرض التوضيحي.
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class MyMathTesting {
@Test
public void testAdd() {
MyMath calculator = new MyMath();
int sum = calculator.add(2, 3);
assertEquals(5, sum);
}
@Test
public void testSub() {
MyMath calculator = new MyMath();
int sub = calculator.sub(5, 2);
assertEquals(3, sub);
}
}
إن طريقة التأكيد هي عبارة عن تأكيد يتحقق مما إذا كانت القيمتان متساويتان. إذا كانت القيم غير متساوية، فسيتم طرح خطأ تأكيدي ، للإشارة إلى فشل الاختبار. يمكن أن يساعدك استخدام التأكيدات في اختبارات الوحدة في اكتشاف الأخطاء والتأكد من أن التعليمات البرمجية الخاصة بك تعمل بشكل صحيح في ظل ظروف ومدخلات مختلفة. حاول إضافة مثل هذه الاختبارات للقسمة والضرب بنفسك. ليست صعبة.
GO TO FULL VERSION