Kes Ujian JUnit @Sebelumnya @BeforeClass Annotation

Isi kandungan:

Anonim

JUnit adalah rangka kerja Pengujian unit yang paling popular di Java. Ia disyorkan secara jelas untuk Ujian Unit JUnit tidak memerlukan pelayan untuk menguji aplikasi web, yang menjadikan proses pengujian menjadi cepat.

Kerangka JUnit juga membolehkan penjanaan kes ujian dan data ujian dengan cepat dan mudah. The org.Junit pakej terdiri daripada banyak muka dan kelas untuk JUnit Testing seperti Ujian, menegaskan, Selepas, Sebelum, dan lain-lain

Apa itu ujian

Sebelum kita memahami apa itu ujian, mari kita kaji kod di bawah

Kod ini dirancang untuk melaksanakan dua kes ujian pada fail sederhana.

kelas awam OutputFileTest {output Fail peribadi;output = Fail baru (…);output.delete ();ujian kekosongan awamFile1 () {// Kod untuk mengesahkan Kes Ujian 1}output.delete ();output = Fail baru (…);ujian kekosongan awamFile2 () {// Kod untuk mengesahkan Kes Ujian 2}output.delete ();}

Beberapa masalah di sini

  • Kodnya tidak boleh dibaca
  • Kodnya tidak mudah dijaga.
  • Apabila rangkaian ujian kompleks, kod tersebut mungkin mengandungi masalah logik.

Bandingkan kod yang sama menggunakan JUnit

kelas awam OutputFileTest{output Fail peribadi;@Sebelum awam membatalkan createOutputFile (){output = Fail baru (…);}@Selepas kekosongan awam deleteOutputFile (){output.delete ();}@Uji ujian kekosongan awamFile1 (){// kod untuk objektif kes ujian}@Uji ujian kekosongan awamFile2 (){// kod untuk objektif kes ujian}}

Kodnya jauh lebih mudah dibaca dan dikekalkan. Struktur kod di atas adalah lekapan Uji.

Lekapan ujian adalah konteks di mana Kes Kes dijalankan. Biasanya, lekapan ujian merangkumi:

  • Objek atau sumber yang ada untuk sebarang kes ujian.
  • Aktiviti yang diperlukan yang menjadikan objek / sumber ini tersedia.
  • Aktiviti-aktiviti ini adalah
    1. peruntukan ( persediaan )
    2. de-peruntukan ( teardown ).

Persediaan dan Teardown

  • Biasanya, ada beberapa tugas berulang yang mesti dilakukan sebelum setiap kes ujian. Contoh: buat sambungan pangkalan data.
  • Begitu juga, pada akhir setiap kes ujian, mungkin ada beberapa tugas yang berulang. Contoh: untuk membersihkan setelah pelaksanaan ujian selesai.
  • JUnit memberikan anotasi yang membantu dalam penyediaan dan penurunan. Ini memastikan bahawa sumber daya dilepaskan, dan sistem ujian dalam keadaan siap untuk kes ujian seterusnya.

Anotasi ini dibincangkan di bawah-

Persediaan

@Sebelum anotasi digunakan pada metode yang mengandungi kod Java untuk dijalankan sebelum setiap kes ujian. iaitu berjalan sebelum setiap pelaksanaan ujian.

Teardown (tanpa mengira keputusan)

@Setelah penjelasan digunakan pada kaedah yang mengandungi kod java untuk dijalankan selepas setiap kes ujian. Kaedah-kaedah ini akan dijalankan walaupun terdapat pengecualian dalam kes ujian atau sekiranya berlaku kegagalan penegasan.

Catatan:

  • Dibolehkan mempunyai sebilangan anotasi yang tertera di atas.
  • Semua kaedah yang dianotasi dengan @Before akan dijalankan sebelum setiap kes ujian, tetapi mereka boleh berjalan dalam urutan apa pun.
  • Anda boleh mewarisi @Sebelum dan @Setelah kaedah dari kelas super, Pelaksanaan adalah seperti berikut: Ini adalah proses pelaksanaan standard di JUnit.
  1. Jalankan kaedah @Sebelum ini di superclass
  2. Jalankan kaedah @Sebelum ini di kelas ini
  3. Jalankan kaedah @Test di kelas ini
  4. Jalankan kaedah @Selepas di kelas ini
  5. Jalankan kaedah @Selepas di superclass

Contoh: Membuat kelas dengan fail sebagai ujian

kelas awam OutputFileTest{output Fail peribadi;@Sebelum awam membatalkan createOutputFile (){output = Fail baru (…);}@Selepas kekosongan awam deleteOutputFile (){output.delete ();}@Uji ujian kekosongan awamFile1 (){// kod untuk objektif kes ujian}@Uji ujian kekosongan awamFile2 (){// kod untuk objektif kes ujian}}

Dalam contoh di atas rantai pelaksanaan akan seperti berikut-

  1. createOutputFile ()
  2. testFile1 ()
  3. deleteOutputFile ()
  4. createOutputFile ()
  5. testFile2 ()
  6. deleteOutputFile ()

Andaian: testFile1 () dijalankan sebelum testFile2 () - yang tidak dijamin.

Penyediaan sekali sahaja

  • Anda boleh menjalankan satu kaedah hanya sekali untuk keseluruhan kelas ujian sebelum mana-mana ujian dijalankan, dan sebelum kaedah @Sebelum ini.
  • "Penyediaan sekali sahaja" berguna untuk memulakan pelayan, membuka komunikasi, dll. Ini memakan masa untuk menutup dan membuka semula sumber untuk setiap ujian.
  • Ini boleh dilakukan dengan menggunakan anotasi @BeforeClass
@BeforeClass public static void Method_Name () {// kod persediaan kelas di sini}

Sekali sahaja meruntuhkan

  • Sama seperti penyediaan sekali sahaja, kaedah pembersihan sekali sahaja juga tersedia. Ia dijalankan setelah semua kaedah kes ujian dan @Setelah penjelasan dilaksanakan.
  • Ia berguna untuk menghentikan pelayan, menutup pautan komunikasi, dll.
  • Ini boleh dilakukan dengan menggunakan anotasi @AfterClass
@AfterClass public static void Method_Name (){// kod pembersihan kelas di sini}

JUnit Test Suites

Sekiranya kita ingin menjalankan beberapa ujian dalam urutan yang ditentukan, itu dapat dilakukan dengan menggabungkan semua ujian di satu tempat. Tempat ini dipanggil sebagai suite ujian. Maklumat lebih lanjut mengenai cara melaksanakan suite ujian dan bagaimana ia digunakan di JUnit akan dibahas dalam tutorial ini.

Pelari Ujian Junit

JUnit menyediakan alat untuk melaksanakan kes ujian anda.

  • Kelas JUnitCore digunakan untuk melaksanakan ujian ini.
  • Kaedah yang disebut runClasses disediakan oleh org.junit.runner.JUnitCore, digunakan untuk menjalankan satu atau beberapa kelas ujian.
  • Jenis pengembalian kaedah ini adalah objek Hasil ( org.junit.runner.Result ), yang digunakan untuk mengakses maklumat mengenai ujian. Lihat contoh kod berikut untuk lebih jelas.
Ujian kelas awam {utama kekosongan statik awam (String [] args) {Hasil keputusan = JUnitCore.runClasses (CreateAndSetName.class);untuk (Kegagalan gagal: result.getFailures ()) {System.out.println (kegagalan.toString ());}System.out.println (result.wasSuccessful ());}}

Dalam kod di atas "hasil" objek diproses untuk mendapatkan kegagalan dan hasil yang berjaya dari kes ujian yang kita laksanakan.

Program JUnit pertama

Pengetahuan yang adil tentang SDLC, pengaturcaraan java, dan asas proses pengujian perisian membantu dalam memahami program JUnit.

Mari fahami Ujian Unit menggunakan contoh langsung. Kita perlu membuat kelas ujian dengan kaedah ujian yang dijelaskan dengan @Test seperti yang diberikan di bawah:

MyFirstClassTest.java

pakej guru99.JUnit;import org statik.JUnit.Assert. *;import org.JUnit.Test;kelas awam MyFirstClassTest {@ Ujianmembatalkan awam myFirstMethod () {String str = "JUnit berfungsi dengan baik";assertEquals ("JUnit berfungsi dengan baik", str);}}

TestRunner.java

Untuk melaksanakan kaedah ujian kami (di atas), kita perlu membuat runner ujian. Dalam runner ujian kita harus menambahkan kelas ujian sebagai parameter dalam kaedah runclasses () JUnitCore. Ia akan mengembalikan hasil ujian, berdasarkan sama ada ujian itu lulus atau gagal.

Untuk keterangan lebih lanjut mengenai perkara ini, lihat kod di bawah:

pakej guru99.JUnit;import org.JUnit.runner.JUnitCore;import org.JUnit.runner.Result;import org.JUnit.runner.notification.Failure;TestRunner kelas awam {utama kekosongan statik awam (String [] args) {Hasil keputusan = JUnitCore.runClasses (MyFirstClassTest.class);untuk (Kegagalan gagal: result.getFailures ()) {System.out.println (kegagalan.toString ());}System.out.println ("Hasil ==" + hasil.wasSukses ());}}

Pengeluaran

Setelah TestRunner.java melaksanakan kaedah ujian kami, kami mendapat output sebagai gagal atau lulus. Sila dapatkan penjelasan output di bawah:

  1. Dalam contoh ini, setelah menjalankan MyFirstClassTest.java , ujian lulus dan hasilnya berwarna hijau.
  2. Sekiranya gagal, ia seharusnya menunjukkan hasilnya sebagai Merah dan kegagalan dapat dilihat pada jejak kegagalan. Lihat di bawah JUnit gui:

Ringkasan :

  • JUnit adalah kerangka yang menyokong beberapa penjelasan untuk mengenal pasti kaedah yang mengandungi ujian.
  • JUnit memberikan anotasi yang disebut @Test, yang memberitahu JUnit bahawa kaedah pengosongan awam di mana ia boleh digunakan sebagai kes ujian.
  • Lekapan ujian adalah konteks di mana kes ujian berjalan
  • Untuk menjalankan beberapa ujian dalam urutan yang ditentukan, ia dapat dilakukan dengan menggabungkan semua ujian di satu tempat. Tempat ini dipanggil sebagai suite ujian.
  • JUnit menyediakan alat untuk melaksanakan ujian di mana kami dapat menjalankan kes ujian kami yang disebut sebagai Test Runner.