JUnit @Ignore Test Annotation with Example

Terkadang Anda mungkin perlu untuk tidak mengeksekusi metode / kode atau Test Case karena pengkodean tidak dilakukan sepenuhnya. Untuk pengujian khusus tersebut, JUnit menyediakan anotasi @Ignore untuk melewati pengujian.

Dalam tutorial ini, Anda akan belajar-

  • Apa itu anotasi pengujian JUnit @Ignore
  • Contoh Uji Sampah - Abaikan
  • Membuat kelas pengujian sederhana tanpa mengabaikan pengujian
  • Abaikan metode pengujian menggunakan anotasi @Ignore
  • Menggunakan @ ignore annotation dengan Condition
  • Abaikan semua metode pengujian menggunakan anotasi @Ignore.

Apa itu anotasi pengujian JUnit @Ignore

Anotasi pengujian @Ignore digunakan untuk mengabaikan pengujian tertentu atau grup pengujian untuk melewati kegagalan build.

@Ignore annotation dapat digunakan dalam dua skenario seperti yang diberikan di bawah ini:

  1. Jika Anda ingin mengabaikan metode pengujian, gunakan @Ignore bersama dengan anotasi @Test.
  2. Jika Anda ingin mengabaikan semua pengujian kelas, gunakan anotasi @Ignore di tingkat kelas.

Anda dapat memberikan alasan untuk menonaktifkan pengujian dalam parameter opsional yang disediakan oleh anotasi @Ignore.

Ini akan membantu pengembang lain mengerjakan bagian kode yang sama, untuk memahami "mengapa pengujian tertentu dinonaktifkan?" Saat masalah pengujian khusus tersebut diperbaiki, Anda dapat mengaktifkannya dengan menghapus anotasi @Ignore .

Contoh Uji Sampah - Abaikan

Seperti yang dibahas dalam definisi di atas, Anda dapat menggunakan anotasi @Ignore untuk mengabaikan pengujian atau kelompok pengujian.

Mari kita pahami dengan menggunakan contoh sederhana dan dalam skenario yang diberikan di bawah ini:

  1. Membuat kelas pengujian sederhana tanpa mengabaikan pengujian.
  2. Abaikan metode pengujian menggunakan anotasi @Ignore.
  3. Abaikan metode pengujian menggunakan anotasi @Ignore dengan alasan yang tepat.
  4. Abaikan semua metode pengujian menggunakan anotasi @Ignore.

Membuat kelas pengujian sederhana tanpa mengabaikan pengujian

Mari buat kelas Java sederhana yang mencetak dua jenis pesan.

  • Metode pertama mencetak pesan sederhana dan
  • Metode kedua mencetak pesan "hai"

JUnitMessage.java

paket guru99.junit;public class JUnitMessage {pesan String pribadi;public JUnitMessage (pesan String) {this.message = pesan;}public String printMessage () {System.out.println (pesan);pesan balasan;}public String printHiMessage () {message = "Hai!" + pesan;System.out.println (pesan);pesan balasan;}}

JunitTestExample.java

Mari buat kelas pengujian JUnit untuk menguji JUnitMessage.java.

Di kelas pengujian JUnit ini,

  • Pengujian pertama, bernama "testJUnitMessage ()" menguji metode "printMessage ()" dari kelas di atas.
  • Demikian pula tes kedua, bernama "testJUnitHiMessage" tes "testJUnitHiMessage" kelas di atas.
paket guru99.junit;impor org.junit.Assert.assertEquals statis;import org.junit.Test;kelas publik JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = JUnitMessage baru (pesan);@Ujipublic void testJUnitMessage () {System.out.println ("Pesan Junit sedang dicetak");assertEquals (pesan, junitMessage.printMessage ());}@Ujipublic void testJUnitHiMessage () {message = "Hai!" + pesan;System.out.println ("Pesan Hi Junit sedang dicetak");assertEquals (pesan, junitMessage.printHiMessage ());}}

TestRunner.java

Mari buat kelas runner pengujian untuk mengeksekusi JunitTestExample.java

paket 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) {Hasil hasil = JUnitCore.runClasses (JunitTestExample.class);untuk (Kegagalan kegagalan: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Hasil ==" + result.wasSuccessful ());}}

Keluaran:

Pernyataan cetak di konsol:

Junit Hi Message sedang dicetak

Hai! Guru99

Pesan Junit sedang dicetak

Guru99

Abaikan metode pengujian menggunakan anotasi @Ignore

Mari buat tes abaikan untuk menonaktifkan tes pada contoh di atas. Untuk ini, Anda perlu menggunakan @Ignore dalam metode ini, yang ingin Anda lewati.

Mari kita lakukan untuk testJUnitMessage () dari JunitTestExample.java

JunitTestExample.java

paket guru99.junit;impor org.junit.Assert.assertEquals statis;import org.junit.Ignore;import org.junit.Test;kelas publik JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = JUnitMessage baru (pesan);@Mengabaikan@Ujipublic void testJUnitMessage () {System.out.println ("Pesan Junit sedang dicetak");assertEquals (pesan, junitMessage.printMessage ());}@Ujipublic void testJUnitHiMessage () {message = "Hai!" + pesan;System.out.println ("Pesan Hi Junit sedang dicetak");assertEquals (pesan, junitMessage.printHiMessage ());}}

Keluaran:

Mari kita jalankan dan verifikasi output dari contoh di atas.

Output di bawah ini menunjukkan bahwa satu tes dilewati (dinonaktifkan), lihat seperti yang ditandai di bawah ini:

Pernyataan cetak di konsol:

Junit Hi Message sedang dicetak

Hai! Guru99

Menggunakan @ ignore annotation dengan Condition

Mari kita ambil contoh bagaimana mengabaikan tes dan menentukan alasan mengabaikan tes. Seperti yang dibahas di atas, untuk memberikan alasan Anda memiliki satu parameter opsional di anotasi @Ignore tempat Anda dapat memberikan pernyataan alasan.

JunitTestExample.java

paket guru99.junit;impor org.junit.Assert.assertEquals statis;import org.junit.Ignore;import org.junit.Test;kelas publik JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = JUnitMessage baru (pesan);@Ignore ("belum siap, Abaikan.")@Ujipublic void testJUnitMessage () {System.out.println ("Pesan Junit sedang dicetak");assertEquals (pesan, junitMessage.printMessage ());}@Ujipublic void testJUnitHiMessage () {message = "Hai!" + pesan;System.out.println ("Pesan Hi Junit sedang dicetak");assertEquals (pesan, junitMessage.printHiMessage ());}}

Keluaran:

Sama seperti di atas.

Abaikan semua metode pengujian menggunakan anotasi @Ignore.

Seperti yang dibahas di atas untuk mengabaikan semua pengujian di kelas, Anda perlu menggunakan anotasi @Ignore di tingkat kelas.

Mari modifikasi contoh di atas untuk memahami bagaimana mengabaikan semua tes:

paket guru99.junit;impor org.junit.Assert.assertEquals statis;import org.junit.Ignore;import org.junit.Test;@Mengabaikankelas publik JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = JUnitMessage baru (pesan);@Ujipublic void testJUnitMessage () {System.out.println ("Pesan Junit sedang dicetak");assertEquals (pesan, junitMessage.printMessage ());}@Ujipublic void testJUnitHiMessage () {message = "Hai!" + pesan;System.out.println ("Pesan Hi Junit sedang dicetak");assertEquals (pesan, junitMessage.printHiMessage ());}}

Keluaran:

Pernyataan cetak di konsol:

Karena kedua pengujian dilewati dengan menggunakan @Ignore di tingkat kelas, maka tidak ada pernyataan yang akan dicetak di konsol.

Ringkasan:

Dalam tutorial ini, Anda mempelajari cara mengabaikan satu pengujian, kelompok pengujian, atau semua pengujian dengan menggunakan anotasi @Ignore.

@Ignore annotation dapat digunakan dalam dua skenario seperti yang diberikan di bawah ini:

  1. Jika Anda ingin mengabaikan metode pengujian, gunakan @Ignore bersama dengan anotasi @Test.
  2. Jika Anda ingin mengabaikan semua pengujian kelas, gunakan anotasi @Ignore di tingkat kelas.

Anda juga belajar bagaimana memberikan pernyataan untuk memahami pengembang lain, mengapa pengujian tertentu dinonaktifkan.

Artikel yang menarik...