Junit Assert & AssertEquals dengan Contoh
Apa itu Junit Assert?
Assert adalah metode yang berguna dalam menentukan status Lulus atau Gagal suatu kasus uji, Metode penegasan disediakan oleh kelas org.junit.Assert yang merupakan perluasan dari kelas java.lang.Object.
Ada berbagai jenis pernyataan seperti Boolean, Null, Identik, dll.
Junit menyediakan kelas bernama Assert, yang menyediakan sekumpulan metode pernyataan yang berguna dalam menulis kasus pengujian dan untuk mendeteksi kegagalan pengujian
Metode penegasan disediakan oleh kelas org.junit.Tegaskan yang meluas java.lang.Objek kelas.
JUnit Tegaskan metode
Boolean
Jika Anda ingin menguji kondisi boolean (benar atau salah), Anda dapat menggunakan metode pernyataan berikut
- assertTrue (kondisi)
- assertFalse (kondisi)
Di sini kondisinya adalah nilai boolean.
Objek nol
Jika Anda ingin memeriksa nilai awal suatu objek/variabel, Anda memiliki metode berikut:
- menegaskanNull(objek)
- menegaskanNotNull(objek)
Berikut objeknya Java obyek misalnya menegaskanNull(aktual);
Identik
Jika Anda ingin memeriksa apakah objeknya identik (yaitu membandingkan dua referensi ke objek java yang sama), atau berbeda.
- menegaskanSama (diharapkan, aktual), Ini akan kembali benar jika diharapkan == aktual
- menegaskanTidakSame(diharapkan, aktual)
Tegaskan Sama
Jika Anda ingin menguji kesetaraan dua objek, Anda memiliki metode berikut
- menegaskanEquals (diharapkan, aktual)
Ini akan kembali benar jika: diharapkan.sama dengan (sebenarnya) kembali benar.
Tegaskan Array Sama
Jika Anda ingin menguji kesetaraan array, Anda memiliki metode berikut seperti yang diberikan di bawah ini:
- menegaskanArrayEquals(diharapkan, aktual)
Metode di atas harus digunakan jika array memiliki panjang yang sama, untuk setiap nilai yang valid i, Anda dapat memeriksanya seperti yang diberikan di bawah ini:
- menegaskanEquals(diharapkan[i],aktual[i])
- menegaskanArrayEquals(diharapkan[i],aktual[i])
Pesan Gagal
Jika Anda ingin memunculkan kesalahan pernyataan apa pun, Anda punya gagal() yang selalu menghasilkan putusan gagal.
- Gagal (pesan);
Anda dapat memiliki metode pernyataan dengan tambahan String parameter sebagai parameter pertama. String ini akan ditambahkan dalam pesan kegagalan jika pernyataan gagal. Misalnya gagal (pesan) dapat ditulis sebagai
- menegaskanEquals( pesan, diharapkan, aktual)
JUnit menegaskanSama
Anda harus menegaskanSama(a,b) yang bergantung pada sama dengan () metode kelas Object.
- Di sini akan dievaluasi sebagai a.sama dengan( b ).
- Di sini kelas yang diuji digunakan untuk menentukan hubungan kesetaraan yang sesuai.
- Jika suatu kelas tidak menimpa sama dengan () metode dari obyek kelas, itu akan mendapatkan perilaku default sama dengan () metode, yaitu identitas objek.
If a ke b adalah primitif seperti byte, int, boolean, dll. maka hal berikut akan dilakukan untuk assertEquals(a,b) :
a ke b akan dikonversi ke jenis objek pembungkus yang setara (Byte, Bilangan Bulat, Boolean, dll.), lalu a.sama dengan( b ) akan dievaluasi.
Misalnya: Pertimbangkan string yang disebutkan di bawah yang memiliki nilai yang sama, mari kita uji menggunakan menegaskanTrue
String obj1="Junit"; String obj2="Junit"; assertEquals(obj1,obj2);
Pernyataan penegasan di atas akan mengembalikan nilai true karena obj1.equals(obj2) mengembalikan nilai true.
Pernyataan titik mengambang
Saat Anda ingin membandingkan tipe floating point (mis dua kali lipat or mengapung), Anda memerlukan parameter tambahan yang diperlukan delta untuk menghindari masalah dengan kesalahan pembulatan saat melakukan perbandingan floating point.
Pernyataan tersebut dievaluasi seperti yang diberikan di bawah ini:
- Math.abs(diharapkan โ aktual) <= delta
Sebagai contoh:
menegaskanSama( SebuahDoubleNilai, yang lainDoubleNilai, 0.001 )
JUnit Contoh Tegaskan
Contoh di bawah ini menunjukkan cara menegaskan suatu kondisi menggunakan JUnit menegaskan metode.
Mari kita buat kelas tes sederhana bernama Junit4AssertionTest.java dan kelas pelari ujian TestRunner.java.
Anda akan membuat beberapa variabel dan pernyataan penegasan penting di dalamnya JUnit.
Dalam contoh ini, Anda akan menjalankan kelas pengujian kami menggunakan TestRunner.java
Langkah 1) Mari buat kelas yang mencakup semua metode pernyataan pernyataan penting di junit:
Junit4AssertionTest.java
package guru99.junit;
import static org.junit.Assert.*;
import org.junit.Test;
public class Junit4AssertionTest {
@Test
public void testAssert(){
//Variable declaration
String string1="Junit";
String string2="Junit";
String string3="test";
String string4="test";
String string5=null;
int variable1=1;
int variable2=2;
int[] airethematicArrary1 = { 1, 2, 3 };
int[] airethematicArrary2 = { 1, 2, 3 };
//Assert statements
assertEquals(string1,string2);
assertSame(string3, string4);
assertNotSame(string1, string3);
assertNotNull(string1);
assertNull(string5);
assertTrue(variable1<variable2);
assertArrayEquals(airethematicArrary1, airethematicArrary2);
}
}
Langkah 2) Anda perlu membuat kelas test runner untuk mengeksekusi kelas di atas:
TestRunner.java
package guru99.junit;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(Junit4AssertionTest.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println("Result=="+result.wasSuccessful());
}
}
Langkah 3) Mari kita analisis keluaran yang diharapkan langkah demi langkah:
Pertimbangkan semua pernyataan tegas satu per satu:
- tegasEquals(string1,string2);
Sekarang bandingkan string1=โ Junitโ dengan string2=โ Junitโ dengan metode kelas objek yang sama. Mengganti metode tegasEquals dari metode java.lang.Object.equals() :
string1.equals(string2)=> mengembalikan nilai true
Jadi menegaskanEquals(string1,string2) akan kembali benar.
- menegaskanSama(string3, string4);
Fungsionalitas โassertSame()โ adalah untuk memeriksa apakah kedua objek merujuk ke objek yang sama.
Karena string3=โtestโ dan string4=โtestโ berarti string3 dan string4 memiliki tipe yang sama sehingga menegaskanSame(string3, string4) akan kembali benar.
- menegaskanTidakSame(string1, string3);
Fungsionalitas โassertNotSame()โ adalah untuk memeriksa bahwa kedua objek tidak merujuk ke objek yang sama.
Karena string1=โJunitโ dan string3=โtestโ berarti string1 dan string3 memiliki tipe yang berbeda, maka menegaskanNotSame(string1, string3) akan kembali benar.
- menegaskanNotNull(string1);
Fungsi โassertNotNull()โ adalah untuk memeriksa apakah suatu objek bukan null.
Karena string1= โJunitโ yang merupakan nilai bukan nol maka tegaskanNotNull(string1) akan kembali benar.
- menegaskanNull(string5);
Fungsi โassertNull()โ adalah untuk memeriksa apakah suatu objek adalah null.
Karena string5= null yang merupakan nilai null maka tegasNull(string5) akan kembali benar.
- menegaskanBenar(variabel1
Fungsionalitas โassertTrue()โ adalah untuk memeriksa apakah suatu kondisi benar.
Karena variabel1=1 dan variabel2=2, yang menunjukkan variabel1 tersebut benar.
- menegaskanArrayEquals(airthematicArrary1, airethematicArrary2);
Fungsionalitas โassertArrayEquals()โ adalah untuk memeriksa apakah array yang diharapkan dan array yang dihasilkan adalah sama. Jenis Array mungkin int, long, short, char, byte atau java.lang.Object.
Karena airethematicArrary1 = { 1, 2, 3 } dan airethematicArrary2 = { 1, 2, 3 } yang menunjukkan kedua array tersebut sama makaassertArrayEquals(airethematicArrary1, airethematicArrary2) akan kembali benar
Karena ketujuhnya menegaskan pernyataan Junit4AssertionTest.java kelas mengembalikan nilai true, oleh karena itu ketika Anda menjalankan kelas tes menegaskan, itu akan mengembalikan tes yang berhasil. (lihat keluaran di bawah)
Langkah 4) Klik kanan pada Junit4AssertionTest.java dan klik runAs->JUnit. Anda akan melihat output seperti yang diberikan di bawah ini:
Output di atas menunjukkan hasil tes yang berhasil seperti yang diharapkan.
Ringkasan
Dalam tutorial ini, Anda mempelajari semua jenis metode pernyataan penting yang disediakan oleh JUnit. Juga, Anda telah melihat contoh pernyataan tegas. Yang menunjukkan bahwa jika semua pernyataan pernyataan menghasilkan nilai benar, maka GUI pengujian akan mengembalikan hasil yang benar dan jika pengujian tunggal gagal maka akan mengembalikan hasil yang gagal.

