JUnit Uji Kasus @Sebelum @BeforeClass Anotasi
JUnit adalah unit yang paling populer pengujian kerangka di Java. Ini secara eksplisit direkomendasikan untuk Pengujian Unit. JUnit tidak memerlukan server untuk menguji aplikasi web, sehingga proses pengujian menjadi cepat.
JUnit Kerangka kerja ini juga memungkinkan pembuatan kasus uji dan data uji dengan cepat dan mudah. Itu org.Junit paket terdiri dari banyak antarmuka dan kelas untuk JUnit Pengujian seperti Test, Assert, After, Before, dll.
Apa itu perlengkapan Tes
Sebelum kita memahami apa itu perlengkapan tes, mari pelajari kode di bawah ini
Kode ini dirancang untuk mengeksekusi dua kasus uji pada file sederhana.
public class OutputFileTest { private File output; output = new File(...); output.delete(); public void testFile1(){ //Code to verify Test Case 1 } output.delete(); output = new File(...); public void testFile2(){ //Code to verify Test Case 2 } output.delete(); }
Beberapa masalah di sini
- Kode tidak dapat dibaca
- Kode ini tidak mudah untuk dipelihara.
- Jika rangkaian pengujiannya rumit, kodenya mungkin mengandung masalah logika.
Bandingkan kode yang sama menggunakan JUnit
public class OutputFileTest { private File output; @Before public void createOutputFile() { output = new File(...); } @After public void deleteOutputFile() { output.delete(); } @Test public void testFile1() { // code for test case objective } @Test public void testFile2() { // code for test case objective } }
Kodenya jauh lebih mudah dibaca dan dipelihara. Struktur kode di atas adalah a Perlengkapan tes.
Perlengkapan tes adalah konteks di mana a JUnit Uji Kasus berjalan. Biasanya, perlengkapan tes meliputi:
- Objek atau sumber daya yang tersedia untuk kasus uji apa pun.
- Aktivitas yang diperlukan untuk membuat objek/sumber daya ini tersedia.
- Kegiatan-kegiatan tersebut adalah
- alokasi (penyiapan)
- de-alokasi (menangis).
Penyiapan dan Pembongkaran
- Biasanya, ada beberapa tugas berulang yang harus dilakukan sebelum setiap kasus uji. Contoh: membuat koneksi database.
- Demikian pula, di akhir setiap kasus uji, mungkin ada beberapa tugas yang diulang. Contoh: untuk membersihkan setelah eksekusi tes selesai.
- JUnit memberikan anotasi yang membantu dalam penyiapan dan pembongkaran. Hal ini memastikan bahwa sumber daya telah dilepaskan, dan sistem pengujian berada dalam kondisi siap untuk kasus pengujian berikutnya.
Ini JUnit anotasi dibahas di bawah ini-
Pengaturan
@Sebelum anotasi di JUnit digunakan pada metode yang mengandung Java kode untuk dijalankan sebelum setiap kasus uji. yaitu dijalankan sebelum setiap eksekusi pengujian.
Pembongkaran (terlepas dari putusannya)
@Setelah anotasi digunakan pada metode yang berisi kode Java untuk dijalankan setelah setiap kasus uji. Metode ini akan berjalan bahkan jika ada pengecualian yang diberikan dalam kasus pengujian atau dalam kasus kegagalan pernyataan.
Catatan:
- Diperbolehkan memiliki sejumlah anotasi yang tercantum di atas.
- Semua metode dijelaskan dengan @Sebelum in JUnit akan dijalankan sebelum setiap kasus uji, tetapi dapat dijalankan dalam urutan apa pun.
- Anda dapat mewarisi metode @Before dan @After dari kelas super, Eksekusinya adalah sebagai berikut: Ini adalah proses eksekusi standar di JUnit.
- Jalankan JUnit @Sebelum metode di superclass
- Jalankan metode @Before di kelas ini
- Jalankan metode @Test di kelas ini
- Jalankan metode @After di kelas ini
- Jalankan metode @After di superclass
Contoh: Membuat kelas dengan file sebagai perlengkapan tes
public class OutputFileTest { private File output; @Before public void createOutputFile() { output = new File(...); } @After public void deleteOutputFile() { output.delete(); } @Test public void testFile1() { // code for test case objective } @Test public void testFile2() { // code for test case objective } }
Dalam contoh di atas rantai eksekusinya adalah sebagai berikut-
- buatOutputFile()
- file uji1()
- hapusOutputFile()
- buatOutputFile()
- file uji2()
- hapusOutputFile()
Anggapan:
testFile1() dijalankan sebelum testFile2()– yang tidak dijamin.
Penyiapan hanya sekali
- Dimungkinkan untuk menjalankan suatu metode hanya sekali untuk seluruh kelas pengujian sebelum pengujian apa pun dijalankan, dan sebelum pengujian apa pun @Sebelum metode.
- “Pengaturan sekali saja” berguna untuk memulai server, membuka komunikasi, dll. Menutup dan membuka kembali sumber daya untuk setiap pengujian memakan waktu lama.
- Ini dapat dilakukan dengan menggunakan anotasi @Sebelum kelas in JUnit.
@BeforeClass public static void Method_Name() { // class setup code here }
Hanya sekali saja dirobohkan
- Mirip dengan pengaturan sekali saja, metode pembersihan sekali saja juga tersedia. Ini berjalan setelah semua metode uji kasus dan @Setelah anotasi telah dijalankan.
- Berguna untuk menghentikan server, menutup jalur komunikasi, dll.
- Ini dapat dilakukan dengan menggunakan @Afterlass anotasi
@AfterClass public static void Method_Name() { // class cleanup code here }
JUnit Suite Tes
Jika kita ingin menjalankan beberapa pengujian dalam urutan tertentu, hal itu dapat dilakukan dengan menggabungkan semua pengujian di satu tempat. Tempat ini disebut sebagai rangkaian pengujian. Rincian lebih lanjut tentang cara menjalankan rangkaian pengujian dan cara penggunaannya dalam JUnit akan dibahas dalam hal ini tutorial.
Pelari Tes Junit
JUnit menyediakan alat untuk mengeksekusi kasus pengujian Anda.
- JUnitCore kelas digunakan untuk menjalankan tes ini.
- Sebuah metode disebut menjalankanKelas disediakan oleh org.junit.runner.JUnitInti, digunakan untuk menjalankan satu atau beberapa kelas tes.
- Jenis pengembalian metode ini adalah Hasil objek (org.junit.runner.Hasil), yang digunakan untuk mengakses informasi tentang pengujian. Lihat contoh kode berikut untuk kejelasan lebih lanjut.
public class Test { public static void main(String[] args) { Result result = JUnitCore.runClasses(CreateAndSetName.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); } }
Dalam kode di atas, objek “hasil” diproses untuk mendapatkan kegagalan dan hasil sukses dari kasus uji yang kita jalankan.
Pertama JUnit program
Pengetahuan yang adil tentang SDLC, pemrograman java, dan dasar-dasarnya pengujian perangkat lunak proses membantu dalam pemahaman JUnit program.
Mari kita pahami Pengujian Unit menggunakan contoh langsung. Kita perlu membuat kelas pengujian dengan metode pengujian yang dianotasi @Uji seperti yang diberikan di bawah ini:
MyFirstClassTest.java
package guru99.JUnit; import static org.JUnit.Assert.*; import org.JUnit.Test; public class MyFirstClassTest { @Test public void myFirstMethod(){ String str= "JUnit is working fine"; assertEquals("JUnit is working fine",str); } }
TestRunner.java
Untuk menjalankan metode pengujian kita (di atas), kita perlu membuat test runner. Di test runner kita harus menambahkan kelas tes sebagai parameter JUnitMetode runclasses() inti. Ini akan mengembalikan hasil tes, berdasarkan apakah tes tersebut lulus atau gagal.
Untuk detail lebih lanjut mengenai hal ini lihat kode di bawah ini:
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(MyFirstClassTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } }
Keluaran
Sekali TestRunner.java mengeksekusi metode pengujian kami, kami mendapatkan output sebagai gagal atau lulus. Silakan temukan penjelasan keluaran di bawah ini:
- Dalam contoh ini, setelah mengeksekusi MyFirstClassTest.java , tes lulus dan hasilnya berwarna hijau.
- Jika gagal, seharusnya hasilnya menunjukkan warna Merah dan kegagalan dapat diamati dalam jejak kegagalan. Lihat di bawah JUnit gui :
Kesimpulan
- JUnit adalah kerangka kerja yang mendukung beberapa anotasi untuk mengidentifikasi metode yang berisi pengujian.
- JUnit memberikan anotasi yang disebut @Tes, yang menceritakan JUnit bahwa metode public void yang digunakan dapat dijalankan sebagai kasus uji.
- Perlengkapan uji adalah konteks di mana kasus uji dijalankan
- Untuk menjalankan beberapa pengujian dalam urutan tertentu, dapat dilakukan dengan menggabungkan semua pengujian di satu tempat. Tempat ini disebut sebagai ruang ujian.
- JUnit menyediakan alat untuk mengeksekusi pengujian di mana kita dapat menjalankan kasus pengujian yang disebut Test Runner.