Apa itu Junit Assert?
Assert adalah kaedah yang berguna dalam menentukan status Lulus atau Gagal bagi kes ujian, Kaedah penegasan diberikan oleh org.junit.Assert kelas yang meluaskan kelas java.lang.Object.
Terdapat pelbagai jenis penegasan seperti Boolean, Null, Identical dll.
Junit menyediakan kelas bernama Assert, yang menyediakan banyak kaedah penegasan yang berguna dalam menulis kes ujian dan untuk mengesan kegagalan ujian
Kaedah penegasan disediakan oleh kelas org.junit.Assert yang memanjangkan kelas java.lang.Object .
Dalam tutorial ini, anda akan belajar-
- Kaedah JUnit Assert
- Boolean
- Objek kosong
- Sama
- Tegaskan Sama
- Tegaskan Array Sama
- Mesej Gagal
- JUnit menegaskanEquals
- Tegasan titik terapung
- Contoh Tegasan JUnit
Kaedah JUnit Assert
Boolean
Sekiranya anda ingin menguji keadaan boolean (benar atau salah), anda boleh menggunakan kaedah penegasan berikut
- assertTrue (keadaan)
- assertFalse (keadaan)
Di sini syaratnya adalah nilai boolean.
Objek kosong
Sekiranya anda ingin memeriksa nilai awal objek / pemboleh ubah, anda mempunyai kaedah berikut:
- assertNull (objek)
- assertNotNull (objek)
Di sini objek adalah objek Java contohnya assertNull (sebenar);
Sama
Sekiranya anda ingin memeriksa sama ada objek itu sama (iaitu membandingkan dua rujukan dengan objek java yang sama), atau berbeza.
- assertSame (dijangka, sebenar), Ia akan kembali benar jika dijangkakan == sebenar
- assertNotSame (dijangka, sebenar)
Tegaskan Sama
Sekiranya anda ingin menguji persamaan dua objek, anda mempunyai kaedah berikut
- assertEquals (dijangka, sebenar)
Ia akan kembali benar jika: dijangka.sama (sebenar) mengembalikan benar.
Tegaskan Array Sama
Sekiranya anda ingin menguji kesamaan tatasusunan, anda mempunyai kaedah berikut seperti yang diberikan di bawah:
- assertArrayEquals (dijangka, sebenar)
Kaedah di atas mesti digunakan jika tatasusunan mempunyai panjang yang sama, untuk setiap nilai yang sah untuk i , anda boleh memeriksanya seperti yang diberikan di bawah:
- assertEquals (dijangka [i], sebenarnya [i])
- assertArrayEquals (dijangka [i], sebenarnya [i])
Mesej Gagal
Sekiranya anda ingin membuang kesilapan penegasan, anda gagal () yang selalu menghasilkan keputusan yang gagal.
- Gagal (mesej);
Anda boleh mempunyai kaedah penegasan dengan parameter String tambahan sebagai parameter pertama. Rentetan ini akan ditambahkan dalam mesej kegagalan sekiranya penegasan gagal. Contohnya fail (mesej) boleh ditulis sebagai
- assertEquals (mesej, dijangka, sebenar)
JUnit menegaskanEquals
Anda mempunyai assertEquals (a, b) yang bergantung pada kaedah sama () dari kelas Objek.
- Di sini ia akan dinilai sebagai a.sama (b).
- Di sini kelas yang diuji digunakan untuk menentukan hubungan persamaan yang sesuai.
- Jika kelas yang tidak mengatasi setaraf () kaedah objek kelas, ia akan mendapatkan tingkah laku yang lalai sama dengan () kaedah, iaitu identiti objek.
Sekiranya a dan b adalah primitif seperti byte , int , boolean , dan lain-lain, maka perkara berikut akan dilakukan untuk assertEquals (a, b):
a dan b akan ditukar kepada jenis objek pembungkus setara mereka ( Byte, Integer , Boolean , dll.), dan kemudian a.sama (b) akan dinilai.
Sebagai Contoh: Pertimbangkan rentetan yang disebutkan di bawah ini mempunyai nilai yang sama, mari kita mengujinya dengan menggunakan assertTrue
Rentetan obj1 = "Junit";Rentetan obj2 = "Junit";assertEquals (obj1, obj2);
Pernyataan tegas di atas akan kembali benar kerana obj1.sama (obj2) mengembalikan benar.
Tegasan titik terapung
Apabila anda ingin membandingkan jenis titik terapung (contohnya double atau float ), anda memerlukan delta parameter tambahan yang diperlukan untuk mengelakkan masalah dengan kesalahan bulat semasa melakukan perbandingan titik terapung.
Penegasan dinilai seperti yang diberikan di bawah:
- Math.abs (dijangka - sebenar) <= delta
Sebagai contoh:
assertEquals (aDoubleValue, lainDoubleValue, 0.001)
Contoh Tegasan JUnit
Contoh di bawah menunjukkan cara menegaskan keadaan menggunakan kaedah penegasan JUnit.
Mari buat kelas ujian sederhana bernama Junit4AssertionTest.java dan kelas pelari ujian TestRunner.java .
Anda akan membuat beberapa pemboleh ubah dan pernyataan penegasan penting dalam JUnit.
Dalam contoh ini, anda akan melaksanakan kelas ujian kami menggunakan TestRunner.java
Langkah 1) Mari buat kelas yang merangkumi semua kaedah pernyataan penegasan penting dalam junit:
Junit4AssertionTest.java
pakej guru99.junit;import org statik.junit.Assert. *;import org.junit.Test;kelas awam Junit4AssertionTest {@ Ujianujian kekosongan awamAssert () {// Pengisytiharan berubahString string1 = "Junit";String string2 = "Junit";String string3 = "ujian";String string4 = "ujian";String string5 = null;int pemboleh ubah1 = 1;pemboleh ubah int2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Tegaskan pernyataanassertEquals (string1, string2);assertSame (string3, string4);assertNotSame (string1, string3);assertNotNull (string1);assertNull (string5);assertTrue (pemboleh ubah1Langkah 2) Anda perlu membuat kelas pelari ujian untuk melaksanakan kelas di atas:
TestRunner.java
pakej guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;TestRunner kelas awam {utama kekosongan statik awam (String [] args) {Hasil keputusan = JUnitCore.runClasses (Junit4AssertionTest.class);untuk (Kegagalan gagal: result.getFailures ()) {System.out.println (kegagalan.toString ());}System.out.println ("Hasil ==" + hasil.wasSukses ());}}Langkah 3) Mari menganalisis hasil yang diharapkan langkah demi langkah:
Pertimbangkan semua pernyataan tegas satu demi satu:
- assertEquals (string1, string2);
Sekarang bandingkan string1 = "Junit" dengan string2 = "Junit" dengan kaedah kelas objek yang sama. Menggantikan kaedah assertEquals dari kaedah java.lang.Object.equals ():
string1.equals (string2) => mengembalikan true
Jadi assertEquals (string1, string2) akan kembali benar .
- assertSame (string3, string4);
Fungsi "assertSame ()" adalah untuk memeriksa bahawa kedua-dua objek tersebut merujuk kepada objek yang sama.
Oleh kerana string3 = "test" dan string4 = "test" bermaksud kedua string3 dan string4 adalah jenis yang sama sehingga assertSame (string3, string4) akan kembali benar .
- assertNotSame (string1, string3);
Fungsi "assertNotSame ()" adalah untuk memeriksa bahawa kedua-dua objek tersebut tidak merujuk kepada objek yang sama.
Oleh kerana string1 = "Junit" dan string3 = "test" bermaksud kedua string1 dan string3 adalah jenis yang berbeza, jadi assertNotSame (string1, string3) akan kembali benar .
- assertNotNull (string1);
Fungsi "assertNotNull ()" adalah untuk memeriksa bahawa objek tidak kosong.
Oleh kerana string1 = "Junit" yang merupakan nilai bukan nol maka assertNotNull (string1) akan kembali benar .
- assertNull (string5);
Fungsi "assertNull ()" adalah untuk memeriksa bahawa objek itu kosong.
Oleh kerana string5 = null yang merupakan nilai null maka assertNull (string5) akan kembali benar .
- assertTrue (pemboleh ubah1
Fungsi "assertTrue ()" adalah untuk memeriksa bahawa keadaan itu benar.
Oleh kerana pemboleh ubah1 = 1 dan pemboleh ubah2 = 2, yang menunjukkan bahawa keadaan pemboleh ubah1
benar .
- assertArrayEquals (airethematicArrary1, airethematicArrary2);
Fungsi "assertArrayEquals ()" adalah untuk memeriksa bahawa array yang diharapkan dan array yang dihasilkan adalah sama. Jenis Array mungkin int, panjang, pendek, char, byte atau java.lang.Object.
Oleh kerana airethematicArrary1 = {1, 2, 3} dan airethematicArrary2 = {1, 2, 3} yang menunjukkan kedua-dua larik itu sama sehingga assertArrayEquals (airethematicArrary1, airethematicArrary2) akan kembali benar
Oleh kerana ketujuh pernyataan tegas kelas Junit4AssertionTest.java kembali benar, oleh itu apabila anda melaksanakan kelas penegasan ujian, ia akan mengembalikan ujian yang berjaya. (lihat output di bawah)
Langkah 4) Klik kanan pada Junit4AssertionTest.java dan klik runAs-> JUnit. Anda akan melihat output seperti yang diberikan di bawah:
Hasil di atas menunjukkan keputusan ujian yang berjaya seperti yang diharapkan.
Ringkasan:
Dalam tutorial ini, anda mempelajari semua jenis kaedah penegasan penting yang disediakan oleh JUnit. Anda juga telah melihat contoh pernyataan tegas. Yang menunjukkan bahawa jika semua pernyataan tegas kembali benar, maka GUI ujian akan mengembalikan hasil yang benar dan jika ujian tunggal gagal, ia akan mengembalikan hasil yang gagal.