CodeGym /جاوا بلاگ /Random-UR /جاوا دعوے
John Squirrels
سطح
San Francisco

جاوا دعوے

گروپ میں شائع ہوا۔
جاوا میں اسسٹٹمنٹ کا استعمال عمل کے دوران کسی پروگرام کی حالت کے بارے میں کچھ مفروضوں کو جانچنے کے لیے کیا جاتا ہے۔ یہ آسانی سے غلطیوں کا پتہ لگانے اور پروگرام کو ڈیبگ کرنے میں مدد کرتا ہے۔ جاوا میں ایک دعوے کا بیان Java assert کلیدی لفظ کا استعمال کرتے ہوئے لکھا جاتا ہے جس کے بعد بولین اظہار ہوتا ہے۔ اگر اظہار درست ثابت ہوتا ہے، تو دعوی خاموشی سے گزر جاتا ہے اور پروگرام اپنا کام کرتا ہے۔ اگر یہ غلط پر تشخیص کرتا ہے، تو دعوی ناکام ہوجاتا ہے اور ایک AssertionError پھینک دیا جاتا ہے۔ آئیے جاوا دعووں کے ساتھ ایک پروگرام کی مثال دیتے ہیں۔
//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

AssertionError کی مثال

جاوا میں، AssertionError ایرر کلاس کا ایک ذیلی طبقہ ہے اور جب کوئی دعویٰ ناکام ہوجاتا ہے تو اسے پھینک دیا جاتا ہے۔ جاوا میں دعوے عام طور پر یہ جانچنے کے لیے استعمال کیے جاتے ہیں کہ پیشگی شرائط، پوسٹ کنڈیشنز، یا انویریئنٹس درست ہیں۔ جیسا کہ ہم نے ذیل میں کہا، ایک AssertionError اس وقت پھینکی جاتی ہے جب کوئی دعویٰ بیان درست ہونے کا اندازہ کرنے میں ناکام ہوجاتا ہے۔ اب ہم اپنے پروگرام کو دوبارہ لکھتے ہیں تاکہ بولین اظہار غلط ہو۔
//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
ہماری مثال میں یقینی طور پر کچھ غلط ہوا! ہمیں یہاں ایک AssertionError ہونا چاہیے کیونکہ ہمارا x 5 ہے اور دعویٰ اس کے 7 ہونے کی توقع رکھتا ہے۔ یہاں کیا غلط ہے؟ یہ نوٹ کرنا ضروری ہے کہ جاوا دعوے صرف JVM میں غیر فعال ہوسکتے ہیں، لہذا انہیں کسی پروگرام میں غلطی کی جانچ کے واحد ذریعہ کے طور پر استعمال نہیں کیا جانا چاہئے۔ وہ ڈیبگنگ اور جانچ کے لیے مفید ہیں، لیکن پروڈکشن کوڈ کے لیے ان پر انحصار نہیں کیا جانا چاہیے۔ لہذا دعوے کو استعمال کرنے کے لیے، آپ کو vm -ea (یا -enableasssertions) آپشن کا استعمال کرتے ہوئے انہیں فعال کرنے کی ضرورت ہے۔ اگر آپ کمانڈ لائن کے ساتھ کام کر رہے ہیں، تو آپ اپنے پروگرام AssertDemo1 کے لیے اگلی کمانڈ استعمال کر سکتے ہیں:
java-ea AssertDemo1
اگر آپ دعوے کو فعال کرتے ہیں اور اسی پروگرام کو دوبارہ چلاتے ہیں تو آپ کو اگلا ملے گا:
تھریڈ "main" java.lang.AssertionError میں استثناء: AssertDemo1.main(AssertDemo1.java:4) پر x 7 ہونا چاہیے۔
یہی تو بات ہے.

IntelliJ IDEA میں مستثنیات کو کیسے فعال کیا جائے۔

  1. رن مینو پر جائیں → کنفیگریشنز میں ترمیم کریں...
  2. لائن VM اختیارات میں -ea پیرامیٹر درج کریں۔
جاوا کے دعوے - 1اب دعوے فعال ہیں اور آپ انہیں استعمال کر سکتے ہیں۔

جاوا میں یونٹ ٹیسٹنگ کے دعوے

جاوا میں، یونٹ ٹیسٹنگ ایک تکنیک ہے جس میں کوڈ کے انفرادی ماڈیولز کو جانچنا شامل ہے تاکہ یہ یقینی بنایا جا سکے کہ وہ صحیح طریقے سے کام کرتے ہیں۔ دعوے عام طور پر جاوا میں یونٹ ٹیسٹنگ میں اس بات کی تصدیق کے لیے استعمال کیے جاتے ہیں کہ ٹیسٹ شدہ کوڈ توقع کے مطابق کام کر رہا ہے۔ یونٹ ٹیسٹنگ میں، کوڈ کی اکائی، مثال کے طور پر ایک خاص طریقہ، کو الگ تھلگ میں جانچا جاتا ہے تاکہ یہ یقینی بنایا جا سکے کہ یہ مختلف حالات اور ان پٹ کے تحت صحیح طریقے سے کام کرتا ہے۔ آئیے ایک مثال دیتے ہیں۔ یہاں ہمارے پاس جمع، گھٹاؤ، ضرب اور تقسیم 2 عدد کے لیے ایک سادہ کیلکولیٹر ہے۔
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;
   }
}
بلاشبہ، اس نفاذ کے بارے میں بہت سے سوالات ہیں (مثال کے طور پر، کیا ہوتا ہے اگر ہم کسی دوسرے نمبر میں سب سے بڑا int شامل کریں)، لیکن ابھی کے لیے ہم اس نفاذ کو ویسا ہی چھوڑ دیں گے۔ اب ایک کلاس لکھتے ہیں جس میں ہم یونٹ ٹیسٹ کی مدد سے مائی میتھ کلاس کے طریقوں کی جانچ کریں گے۔ سچ ہے، ان میں سے صرف دو۔ درحقیقت، آپ ایسے ٹیسٹ لکھ سکتے ہیں جو درست ہونے کے لیے دلائل کی جانچ پڑتال کرتے ہیں، آیا کوئی طریقہ خصوصی معاملات کو ہینڈل کرتا ہے، وغیرہ۔ لیکن یہاں ہم مظاہرے کے مقاصد کے لیے اپنے آپ کو صرف چند ٹیسٹوں تک محدود رکھیں گے۔
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);
   }

}
assertEquals طریقہ ایک دعویٰ ہے جو جانچتا ہے کہ آیا دو قدریں برابر ہیں۔ اگر اقدار برابر نہیں ہیں تو، ایک AssertionError پھینک دیا جائے گا، جس سے ظاہر ہوتا ہے کہ ٹیسٹ ناکام ہو گیا ہے۔ یونٹ ٹیسٹ میں دعوے استعمال کرنے سے آپ کو کیڑے پکڑنے اور یہ یقینی بنانے میں مدد مل سکتی ہے کہ آپ کا کوڈ مختلف حالات اور ان پٹ کے تحت صحیح طریقے سے کام کر رہا ہے۔ تقسیم اور ضرب کے لیے ایسے ٹیسٹ خود شامل کرنے کی کوشش کریں۔ یہ مشکل نہیں ہے۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION