Tutorial Ini Menerangkan cara Abaikan Kes Ujian dalam JUnit dengan contoh. Anda akan belajar menggunakan @Ignore dalam JUnit 4 & @Disabled Annotation dalam JUnit 5:
Dalam tutorial sebelumnya, kami harus memahami apa yang dipanggil API Anotasi, apa yang dilakukannya dan juga melihat contoh asas tentang cara menggunakan anotasi kitaran hayat, keutamaan yang tahan apabila kes ujian dilaksanakan.
Mari cuba jelaskan situasi apabila kita perlu tidak dijalankan atau sedang tidak sepatutnya menjalankan semua kes ujian. Kami akan belajar untuk Abaikan Kes Ujian dalam JUnit.
JUnit Abaikan Kes Ujian
Mungkin terdapat kes ujian tertentu yang tidak dijalankan kerana mungkin tidak berkaitan dengan perubahan kod tertentu atau kod untuk kes ujian mungkin masih dalam pembangunan, jadi kami mengelak daripada menjalankannya.
Dalam kes sedemikian, kami mungkin perlu menjalankan satu set kes ujian dengan melangkau beberapa yang lain . Jadi, apakah yang disediakan oleh JUnit 4, serta JUnit 5, kepada kami supaya kami dapat menjalankan beberapa kes ujian sahaja sambil mengabaikan atau melumpuhkan atau memanggilnya 'melangkau' beberapa kes ujian?
Nasib baik, kami mempunyai @Ignore anotasi untuk JUnit 4 untuk melangkau kes ujian manakala @Disabled anotasi untuk JUnit 5 untuk melakukan perkara yang sama.
JUnit 4 – @Abaikan Anotasi
- JUnit 4 @Abaikan anotasi boleh digunakan untuk kaedah ujian, untuk melangkau pelaksanaannya. Dalam kes ini,anda perlu menggunakan @Abaikan dengan anotasi @Test untuk kaedah ujian yang anda ingin langkau.
- Anotasi juga boleh digunakan pada kelas ujian, untuk melangkau semua kes ujian di bawah kelas. Dalam kes ini, anda perlu menggunakan @Ignore pada peringkat kelas.
Kod tersebut memerlukan pakej org.junit.Ignore untuk diimport untuk @Ignore berfungsi. Mari tunjukkan cara melangkau kaedah ujian dalam ujian JUnit 4. Kami akan mengubah suai JUnitProgram.java untuk melangkau kaedah kes ujian pertama.
Coretan kod ialah:
@Ignore @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); } @Test public void test_JUnit2() { System.out.println("This is the testcase test_JUnit2() in this class"); } @Test public void test_JUnit3() { System.out.println("This is the testcase test_JUnit3() in this class"); }
Pada pelaksanaan fail kelas, test_JUnit1() dilangkau semasa pelaksanaan. Selain itu, kaedah yang dianotasi dengan @Ignore dan semua kaedah ujian lain berjalan seperti yang dijangkakan.
Kiraan Larian yang terhasil menunjukkan 3/3 kes ujian dan 1 kes ujian menunjukkan dilangkau. Kiraan larian menunjukkan 3/3 kerana kes ujian yang dilangkau pun cuba untuk melaksanakan.
Tangkapan skrin di bawah tetingkap konsol membuktikan perkara yang sama.
@Abaikan Anotasi Dengan Parameter Sebab
Terdapat variasi pada @Abaikan anotasi juga. Anotasi mengambil satu argumen dengan nilai rentetan yang merupakan sebab untuk melangkau ujian.
Mari kita tunjukkan variasi @Abaikan anotasi ini.
Coretan kod adalah seperti berikut :
@Ignore("the testcase is under development") @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); }
Tetingkap konsol menunjukkan hasil yang sama seperti yang ditunjukkan tanpa alasan yang dihantar kepada @Abaikan anotasi.
Sekarang, mari kita lihat bagaimana semua ujiankepunyaan kelas boleh dilumpuhkan. Kami kini akan mengemas kini anotasi @Ignore pada peringkat kelas untuk JUnitProgram.java
Coretan kod adalah seperti yang ditunjukkan di bawah:
import org.junit.AfterClass; @Ignore("the testcase is under development") public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println("This is the preClass() method that runs one time before the class"); } @Before public void setUp() { System.out.println("_______________________________________________________\n"); System.out.println("This is the setUp() method that runs before each testcase"); } @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); }
Sisahkan pelaksanaan fail kelas, konsol menunjukkan tiada apa-apa, dan Jalankan kiraan di bawah tab JUnit menunjukkan 1 kelas dilangkau daripada 1 kelas .
Di bawah ialah tangkapan skrin tetingkap konsol:
JUnit 5 – @Disabled Anotasi
@Dilumpuhkan anotasi dalam JUnit 5 berfungsi sama seperti @Abaikan anotasi dalam JUnit 4.
- Anda boleh melumpuhkan atau melangkau pelaksanaan untuk kaedah ujian atau sekumpulan ujian dengan menggunakan anotasi pada peringkat Ujian.
- Atau semua ujian boleh dilangkau dengan menggunakan anotasi @Disabled pada peringkat kelas dan bukannya menggunakannya pada tahap kaedah ujian.
Seperti @Abaikan, sebab juga boleh diluluskan untuk @Disabled untuk mana-mana pembangun atau penganalisis perniagaan mengetahui sebab kes ujian tertentu dilangkau. Parameter kekal sebagai pilihan sama seperti dalam kes @Ignore.
( Nota: Kami akan mengelak daripada menunjukkan anotasi @Disabled melalui kod sebenar untuk mengelakkan pengulangan kerana ia mengikuti fesyen tepat @Ignore ikuti dalam JUnit 4.)
Satu-satunya perbezaan yang anda akan perhatikan dalam kes @Ignore Vs @Disabled ialah apabila anotasi digunakan pada peringkat kelas, pasca pelaksanaan fail kelas JUnit,kiraan Larian dalam kes JUnit 4 , menunjukkan 1/1 kelas dilangkau.
Oleh itu kiraan kelas yang dilangkau disediakan manakala dalam kes JUnit 5 menunjukkan 3/3 kes ujian dilangkau memandangkan tiga kaedah ujian telah dilangkau daripada jumlah tiga kaedah ujian dalam kelas.
Oleh itu, pada keterlihatan kiraan kes ujian yang dilangkau , JUnit 5 melakukan kerja yang sedikit lebih baik jika dibandingkan dengan JUnit 4.
Kesimpulan
Dalam tutorial ini, kami mengetahui apakah situasi apabila kami mungkin perlu melangkau pelaksanaan beberapa kes ujian. Kami juga mempelajari cara melangkau kes ujian tertentu dalam JUnit 4 dan juga JUnit 5.