JUnit @Abaikan Anotasi Tes dengan Contoh

Terkadang Anda mungkin perlu untuk tidak menjalankan metode/kode atau Uji Kasus karena pengkodean tidak dilakukan sepenuhnya. Untuk tes khusus itu, JUnit menyediakan @Mengabaikan anotasi untuk melewati tes.

Apa itu JUnit @Abaikan anotasi tes

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

@Mengabaikan anotasi 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 di parameter opsional yang disediakan oleh anotasi @Ignore.

Ini akan membantu pengembang lain yang mengerjakan bagian kode yang sama, untuk memahami “mengapa pengujian tertentu dinonaktifkan?” Ketika masalah pengujian tertentu telah diperbaiki, Anda dapat mengaktifkannya dengan menghapusnya @Abaikan anotasi.

Contoh Uji Junit – Abaikan

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

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

  1. Membuat kelas tes sederhana tanpa mengabaikan tes.
  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 tes sederhana tanpa mengabaikan tes

Mari kita buat yang sederhana Java kelas yang mencetak dua jenis pesan.

  • Metode pertama mencetak pesan sederhana dan
  • Metode kedua mencetak pesan “hai”.

JUnitPesan.java

package guru99.junit;		

public class JUnitMessage {				

    private String message;					

    public JUnitMessage(String message) {					
        this.message = message;							
    }		
    		
public String printMessage(){		
    		
    System.out.println(message);					
    		
    return message;					
}    		
    		
public String printHiMessage(){		
    		
    message="Hi!"+ message;							
    		
    System.out.println(message);					
    		
    return message;					
}    		
    		
}		

JunitTestExample.java

Mari buat JUnit kelas tes untuk menguji JUnitPesan.java.

Dalam JUnit kelas ujian,

  • Tes pertama diberi nama “testJUnitMessage()” menguji metode “printMessage()” dari kelas di atas.
  • Demikian pula tes kedua yang diberi nama “tesJUnitHiMessage” menguji “tesJUnitHiMessage” dari kelas di atas.
package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Test;		

public class JunitTestExample {				

    public String message = "Guru99";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Test		
    public void testJUnitMessage() {					

        System.out.println("Junit Message is printing");					
        assertEquals(message, junitMessage.printMessage());					

    }		

    @Test		
    public void testJUnitHiMessage() {					
        message="Hi!" +message;							
        System.out.println("Junit Hi Message is printing ");					
        assertEquals(message, junitMessage.printHiMessage());					

    }		
}		

TestRunner.java

Mari membuat kelas pelari pengujian untuk menjalankan JunitTestExample.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(JunitTestExample.class);				
			for (Failure failure : result.getFailures()) {							
         System.out.println(failure.toString());					
      }		
      System.out.println("Result=="+result.wasSuccessful());							
   }		
}      	

Keluaran:

Membuat Kelas Tes Sederhana tanpa Mengabaikan Tes

Cetak pernyataan di konsol:

Junit Hai Pesan 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 yang ingin Anda lewati.

Mari kita lakukan untuk ujianJUnitPesan() dari JunitTestExample.java

JunitTestExample.java

package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Ignore;		
import org.junit.Test;		

public class JunitTestExample {				

    public String message = "Guru99";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Ignore		
    @Test		
    public void testJUnitMessage() {					

        System.out.println("Junit Message is printing ");					
        assertEquals(message, junitMessage.printMessage());					

    }		

    @Test		
    public void testJUnitHiMessage() {					
        message="Hi!" +message;							
        System.out.println("Junit Hi Message is printing ");					
        assertEquals(message, junitMessage.printHiMessage());					

    }		
}

Keluaran:

Mari jalankan dan verifikasi keluaran dari contoh di atas.

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

Membuat Kelas Tes Sederhana tanpa Mengabaikan Tes

Cetak pernyataan di konsol:

Junit Hai Pesan sedang dicetak

Hai!Guru99

Menggunakan anotasi @ abaikan dengan Kondisi

Mari kita ambil contoh cara mengabaikan suatu tes dan menjelaskan alasan mengabaikannya. Seperti dibahas di atas, untuk memberikan alasan, Anda memiliki satu parameter opsional di anotasi @Ignore tempat Anda dapat memberikan pernyataan alasan.

JunitTestExample.java

package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Ignore;		
import org.junit.Test;		

public class JunitTestExample {				

    public String message = "Guru99";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Ignore("not yet ready , Please ignore.")					
    @Test		
    public void testJUnitMessage() {					

        System.out.println("Junit Message is printing ");					
        assertEquals(message, junitMessage.printMessage());					

    }		

    @Test		
    public void testJUnitHiMessage() {					
        message="Hi!" +message;							
        System.out.println("Junit Hi Message is printing ");					
        assertEquals(message, junitMessage.printHiMessage());					

    }		
}		

Keluaran:

Sama seperti di atas.

Abaikan semua metode pengujian menggunakan anotasi @Ignore.

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

Mari kita modifikasi contoh di atas untuk memahami cara mengabaikan semua pengujian:

package guru99.junit;		

import static org.junit.Assert.assertEquals;				

import org.junit.Ignore;		
import org.junit.Test;		

@Ignore		
public class JunitTestExample {				

    public String message = "Guru99";							

    JUnitMessage junitMessage = new JUnitMessage(message);							

    @Test		
    public void testJUnitMessage() {					

        System.out.println("Junit Message is printing ");					
        assertEquals(message, junitMessage.printMessage());					

    }		

    @Test		
    public void testJUnitHiMessage() {					
        message="Hi!" +message;							
        System.out.println("Junit Hi Message is printing ");					
        assertEquals(message, junitMessage.printHiMessage());					

    }		
}		

Output:

Abaikan Metode Pengujian Menggunakan @Ignore Annotation

Cetak pernyataan di konsol:

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

Ringkasan

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

@Mengabaikan anotasi 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 mempelajari cara memberikan pernyataan untuk memahami pengembang lain, mengapa pengujian tertentu dinonaktifkan.