CodeGym /בלוג Java /Random-HE /קביעות ג'אווה
John Squirrels
רָמָה
San Francisco

קביעות ג'אווה

פורסם בקבוצה
הצהרת Assert ב-Java משמשת לבדיקת הנחות מסוימות לגבי מצב תוכנית במהלך הביצוע. זה עוזר לזהות בקלות שגיאות וניפוי באגים בתוכנית. הצהרת טענה ב-Java נכתבת באמצעות מילת המפתח Java assert ואחריה ביטוי בוליאני. אם הביטוי מוערך כנכון, הטענה עוברת בשקט והתוכנית עושה את עבודתה. אם הוא מוערך כ-false, הטענה נכשלת ו- AssertionError נזרק. בואו נביא דוגמה לתוכנית עם קביעות 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

AssertionError דוגמה

ב-Java, AssertionError היא תת מחלקה של מחלקה Error והיא נזרקת כאשר טענה נכשלת. קביעות ב-Java משמשות בדרך כלל כדי לבדוק שתנאים מוקדמים, תנאים פוסט-תנאים או אי-וריאנטים מתקיימים. כפי שאמרנו להלן, 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. מה לא בסדר כאן? חשוב לציין שניתן פשוט להשבית קביעות Java ב-JVM, ולכן אין להשתמש בהן כאמצעי היחיד לבדיקת שגיאות בתוכנית. הם שימושיים עבור איתור באגים ובדיקות, אך אין להסתמך עליהם עבור קוד ייצור. אז כדי להשתמש בהצהרות, אתה צריך להפעיל אותן באמצעות האפשרות vm -ea (או -enableassertions). אם אתה עובד עם שורת הפקודה, אתה יכול להשתמש בפקודה הבאה עבור התוכנית שלך AssertDemo1:
java -ea AssertDemo1
אם תפעיל הצהרות ותפעיל מחדש את אותה תוכנית, תקבל את התוכנית הבאה:
חריג בשרשור "main" java.lang.AssertionError: x צריך להיות 7 ב-AssertDemo1.main(AssertDemo1.java:4)
זו הנקודה.

כיצד לאפשר חריגים ב-IntelliJ IDEA

  1. עבור לתפריט הפעלה ← ערוך תצורות....
  2. הזן את הפרמטר -ea בשורה אפשרויות VM
קביעות ג'אווה - 1כעת ההצהרות מופעלות ותוכל להשתמש בהן.

קביעות לבדיקת יחידות ב-Java

ב-Java, בדיקת יחידות היא טכניקה הכוללת בדיקת מודולי קוד בודדים כדי לוודא שהם פועלים כהלכה. הצהרות משמשות בדרך כלל בבדיקת יחידות ב-Java כדי לוודא שהקוד שנבדק פועל כמצופה. בבדיקת יחידות, יחידת קוד, למשל שיטה מסוימת, נבדקת במנותק כדי לוודא שהיא פועלת כהלכה בתנאים ותשומות שונות. בואו נביא דוגמה. כאן יש לנו מחשבון פשוט לחיבור, חיסור, כפל וחילוק 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 הגדול ביותר למספר אחר), אבל לעת עתה נשאיר את היישום הזה כמו שהוא. כעת נכתוב מחלקה בה נבדוק את השיטות של מחלקת 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);
   }

}
שיטת assertEquals היא טענה הבודקת אם שני ערכים שווים. אם הערכים אינם שווים, תושק AssertionError , המציין שהמבחן נכשל. שימוש בהצהרות במבחני יחידות יכול לעזור לך לתפוס באגים ולהבטיח שהקוד שלך פועל כהלכה בתנאים ובכניסות שונות. נסו להוסיף בעצמכם מבחנים כאלה לחילוק וכפל. זה לא קשה.
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION