JUnit Testcases di Java: JUnit 5.7.1 Sederhana Tutorial Hello World dengan Detail Semua dalam Satu
Diterbitkan: 2019-10-30
Apa itu JUnit?
JUnit adalah kerangka kerja sumber terbuka yang sederhana, kuat, untuk menulis dan menjalankan pengujian berulang. Saya suka testcase JUnit. Selama pengembangan Proyek Java saya, saya banyak menggunakan JUnit untuk cakupan kode. Ini adalah contoh arsitektur xUnit untuk kerangka kerja pengujian unit.
Fitur JUnit meliputi:
- Pernyataan untuk menguji hasil yang diharapkan
- Perlengkapan uji untuk berbagi data uji umum
- Pelari uji untuk menjalankan tes
Dalam tutorial ini saya akan membahas poin 1 dan 3. Anda memerlukan ketergantungan pakar di bawah ini dalam proyek Anda.
1 2 3 4 5 |
< dependency > < groupId > junit < / groupId > < artifactId > junit < / artifactId > < version > 4.12 < / version > < / dependency > |
Mari kita mulai menulis kode.
Langkah 1
Buat proyek CrunchifyJunitTest
dan tentukan paket com.crunchify.junit
. Berikut adalah struktur Paket untuk referensi cepat.

Langkah 2
Klik kanan pada CrunchifyJunitTest
=> Kelas Baru => CrunchifyJunitTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package com . crunchify . junit ; /** * @author Crunchify * */ import static org . junit . Assert . assertEquals ; import org . junit . Test ; public class CrunchifyJunitTest { @ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 30 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello + World" , helloWorld ( ) ) ; } public int addition ( int x , int y ) { return x + y ; } public String helloWorld ( ) { String helloWorld = "Hello +" + " World" ; return helloWorld ; } } |
Langkah-3
Eclipse akan menyarankan dan secara otomatis menambahkan ketergantungan org.junit.Test
setelah Anda mengetik @Test .

Langkah-4
Untuk menguji tes JUnit Anda
- Klik kanan di kelas
- Klik Jalankan Sebagai
- Klik
JUnit Test
Anda harus melihat sesuatu seperti ini.

Langkah-5
Coba ubah metode parameter nilai yang diharapkan dari 30 => 300
dan dari Hello World => Hello -- World
dan uji lagi.
1 2 3 4 5 6 7 8 9 |
@ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 300 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello -- World" , helloWorld ( ) ) ; } |

Langkah-6
Sekarang mari kita jalankan test case yang sama via other java
. Buat CrunchifyRunnerJUnit.java

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package com . crunchify . junit ; import org . junit . runner . JUnitCore ; import org . junit . runner . Result ; import org . junit . runner . notification . Failure ; /** * @author Crunchify * */ public class CrunchifyRunnerJUnit { public static void main ( String [ ] args ) { Result result = JUnitCore . runClasses ( CrunchifyJunitTest . class ) ; for ( Failure failure : result . getFailures ( ) ) { System . out . println ( failure . toString ( ) ) ; } if ( result . wasSuccessful ( ) ) { System . out . println ( "Both Tests finished successfully..." ) ; } } } |
Langkah-7
Jalankan CrunchifyRunnerJUnit.java
sebagai Java Application
.
Langkah-8
Dalam hal 1st code
(param yang diharapkan benar), Anda akan melihat output seperti ini:
1 |
Both Tests finished successfully . . . |
Langkah-9
Dalam hal 2nd code
-2 (param yang diharapkan salah), Anda akan melihat sesuatu seperti ini:
1 2 |
testingCrunchifyAddition ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Addition Result : expected : < 300 > but was : < 30 > testingHelloWorld ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Hello World String : expected : < Hello [ -- ] World > but was : < Hello [ + ] World > |
Dan Anda sudah siap. Beri tahu saya jika Anda melihat masalah dalam menjalankan kode ini.
Anotasi yang tersedia dalam testcase JUnit:
Anotasi | Keterangan |
---|---|
@Uji metode kekosongan publik () | Anotasi @Test mengidentifikasi bahwa suatu metode adalah metode pengujian. |
@Sebelum metode batal publik () | Akan menjalankan metode sebelum setiap tes. Metode ini dapat mempersiapkan lingkungan pengujian (misalnya membaca data input, menginisialisasi kelas). |
@Setelah metode batal publik () | Akan menjalankan metode setelah setiap tes. Metode ini dapat membersihkan lingkungan pengujian (misalnya menghapus data sementara, mengembalikan default). |
@BeforeClass metode kekosongan publik () | Akan menjalankan metode sekali, sebelum memulai semua tes. Ini dapat digunakan untuk melakukan aktivitas intensif waktu, misalnya untuk terhubung ke database. |
@AfterClass metode kekosongan publik () | Akan menjalankan metode sekali, setelah semua tes selesai. Ini dapat digunakan untuk melakukan aktivitas pembersihan, misalnya untuk memutuskan sambungan dari database. |
@Mengabaikan | Akan mengabaikan metode pengujian. Ini berguna ketika kode yang mendasarinya telah diubah dan kasus uji belum diadaptasi. Atau jika waktu pelaksanaan tes ini terlalu lama untuk dimasukkan. |
@Test (diharapkan = Exception.class) | Gagal, jika metode tidak membuang pengecualian bernama. |
@Uji(waktu habis=100) | Gagal, jika metode ini membutuhkan waktu lebih dari 100 milidetik. |
Metode Assert Test yang Tersedia:
Penyataan | Keterangan |
---|---|
gagal (String) | Biarkan metode ini gagal. Mungkin digunakan untuk memeriksa bahwa bagian tertentu dari kode tidak tercapai. Atau memiliki tes yang gagal sebelum kode tes diimplementasikan. |
assertTrue(benar) / assertTrue(salah) | Akan selalu benar/salah. Dapat digunakan untuk menentukan hasil tes, jika tes belum dilaksanakan. |
assertTrue([pesan], kondisi boolean) | Memeriksa bahwa kondisi boolean benar. |
assertsEquals([Pesan string], diharapkan, aktual) | Menguji bahwa dua nilai adalah sama. Catatan: untuk array referensi dicentang bukan konten array. |
assertsEquals([Pesan string], diharapkan, aktual, toleransi) | Uji apakah nilai float atau double cocok. Toleransi adalah jumlah desimal yang harus sama. |
assertNull([pesan], objek) | Memeriksa apakah objek tersebut null. |
assertNotNull([pesan], objek) | Memeriksa bahwa objek tidak nol. |
assertSame([String], diharapkan, aktual) | Memeriksa bahwa kedua variabel merujuk ke objek yang sama. |
assertNotSame([String], diharapkan, aktual) | Memeriksa bahwa kedua variabel merujuk ke objek yang berbeda. |