CodeGym /Blog Java /rawak /Penegasan Java
John Squirrels
Tahap
San Francisco

Penegasan Java

Diterbitkan dalam kumpulan
Assert statement Dalam Java digunakan untuk menguji andaian tertentu tentang keadaan program semasa pelaksanaan. Ini membantu untuk mengesan ralat dan nyahpepijat program dengan mudah. Kenyataan penegasan dalam Java ditulis menggunakan kata kunci Java assert diikuti dengan ungkapan boolean. Jika ungkapan dinilai kepada benar, penegasan itu berlalu secara senyap dan program menjalankan tugasnya. Jika ia dinilai palsu, penegasan gagal dan AssertionError dilemparkan. Mari kita dapatkan contoh program dengan pernyataan 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);
   }
}
Di sini ungkapan itu benar, jadi program itu hanya meneruskan tugasnya. Outputnya adalah seperti yang dijangkakan:
5

Contoh AssertionError

Di Java, AssertionError ialah subkelas kelas Ralat dan ia dilemparkan apabila penegasan gagal. Penegasan dalam Java biasanya digunakan untuk menyemak bahawa prasyarat, pascasyarat atau invarian adalah benar. Seperti yang kami katakan di bawah, AssertionError dilemparkan apabila pernyataan penegasan gagal dinilai sebagai benar. Sekarang mari kita tulis semula atur cara kita supaya ungkapan boolean adalah palsu.
//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);
   }
}
Nah, kami menjalankannya dan outputnya adalah…
5
Pasti ada yang tidak kena dalam contoh kami! Kita sepatutnya mempunyai AssertionError di sini kerana x kita ialah 5 dan penegasan menjangkakan ia menjadi 7. Apa yang salah di sini? Adalah penting untuk ambil perhatian bahawa penegasan Java hanya boleh dilumpuhkan dalam JVM, jadi ia tidak boleh digunakan sebagai satu-satunya cara untuk menyemak ralat dalam program. Ia berguna untuk penyahpepijatan dan ujian, tetapi tidak boleh dipercayai untuk kod pengeluaran. Jadi untuk menggunakan penegasan, anda perlu mendayakannya menggunakan pilihan vm -ea (atau -enableassertions). Jika anda bekerja dengan baris arahan, anda boleh menggunakan arahan seterusnya untuk program anda AssertDemo1:
java -ea AssertDemo1
jika anda mendayakan penegasan dan menjalankan semula program yang sama, anda akan mendapat yang seterusnya:
Pengecualian dalam utas "utama" java.lang.AssertionError: x sepatutnya 7 di AssertDemo1.main(AssertDemo1.java:4)
Itulah maksudnya.

Bagaimana untuk mendayakan pengecualian dalam IntelliJ IDEA

  1. Pergi ke menu Jalankan → Edit Konfigurasi....
  2. Masukkan parameter -ea dalam pilihan VM baris
Penegasan Java - 1Kini penegasan didayakan dan anda boleh menggunakannya.

Penegasan untuk ujian unit di Jawa

Di Java, ujian unit ialah teknik yang melibatkan ujian modul individu kod untuk memastikan ia berfungsi dengan betul. Penegasan biasanya digunakan dalam ujian unit di Java untuk mengesahkan bahawa kod yang diuji berfungsi seperti yang diharapkan. Dalam ujian unit, unit kod, contohnya kaedah tertentu, diuji secara berasingan untuk memastikan ia berfungsi dengan betul di bawah keadaan dan input yang berbeza. Mari kita ambil contoh. Di sini kita mempunyai kalkulator mudah untuk penambahan, penolakan, pendaraban dan pembahagian 2 integer.
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;
   }
}
Sudah tentu, terdapat banyak soalan tentang pelaksanaan ini (contohnya, apa yang berlaku jika kita menambah int terbesar ke nombor lain), tetapi buat masa ini kita akan membiarkan pelaksanaan ini seperti sedia ada. Sekarang mari kita tulis kelas di mana kita akan menguji kaedah kelas myMath dengan bantuan ujian unit. Benar, hanya dua daripada mereka. Malah, anda boleh menulis ujian yang menyemak argumen untuk kesahihan, sama ada kaedah mengendalikan kes khas, dan sebagainya. Tetapi di sini kita akan mengehadkan diri kita kepada hanya beberapa ujian untuk tujuan demonstrasi.
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);
   }

}
Kaedah assertEquals ialah penegasan yang menyemak sama ada dua nilai adalah sama. Jika nilai tidak sama, AssertionError akan dilemparkan, menunjukkan bahawa ujian telah gagal. Menggunakan penegasan dalam ujian unit boleh membantu anda menangkap pepijat dan memastikan kod anda berfungsi dengan betul di bawah keadaan dan input yang berbeza. Cuba tambah sendiri ujian pembahagian dan pendaraban sedemikian. Ia tidak sukar.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION