JUnit ErrorCollector @ Peraturan dengan Contoh

Isi kandungan:

Anonim

Dalam senario biasa, setiap kali anda mengenal pasti ralat semasa pelaksanaan ujian, anda akan menghentikan ujian, memperbaiki kesalahan dan menjalankan semula ujian.

Tetapi JUnit mempunyai pendekatan yang sedikit berbeza. Dengan pengumpul ralat JUnit, anda masih boleh meneruskan pelaksanaan ujian walaupun terdapat masalah atau ujian gagal. Pengumpul ralat mengumpulkan semua objek ralat dan melaporkannya hanya sekali setelah pelaksanaan ujian selesai.

Dalam tutorial ini, anda akan belajar-

  • Apakah pengumpul ralat di JUnit?
  • Apa itu @ Peraturan di jUnit?
  • Contohnya menggunakan ErrorCollector
  • Kelebihan JUnit ErrorCollector

Mengapa menggunakan Pengumpul Ralat?

Semasa menulis skrip ujian, anda ingin menjalankan semua ujian walaupun garis kod gagal kerana kegagalan rangkaian, kegagalan penegasan, atau sebab lain. Dalam keadaan itu, anda masih boleh terus melaksanakan skrip ujian menggunakan ciri khas yang disediakan oleh JUnit yang dikenali sebagai "pengumpul ralat."

Untuk ini, JUnit menggunakan anotasi @Rule yang digunakan untuk membuat objek pengumpul ralat. Setelah objek untuk pengumpul ralat dibuat, anda dapat dengan mudah menambahkan semua kesalahan ke dalam objek menggunakan kaedah addError (Ralat yang dilemparkan). Seperti yang anda ketahui, Throwable itu adalah kelas Super Exception and Error di Java. Apabila anda menambahkan ralat dengan cara ini, kesalahan ini akan masuk dalam hasil ujian JUnit.

Manfaat menambahkan semua kesalahan dalam Pemungut Ralat adalah anda dapat mengesahkan semua kesalahan sekaligus. Juga, jika skrip gagal di tengah, ia masih dapat terus melaksanakannya

Catatan : Sekiranya menggunakan penegasan sederhana atau blok cubaan / tangkapan, kaedah pengumpul ralat tidak mungkin dilakukan.

Contoh kod

Untuk memahami lebih lanjut mengenai Pengumpul Ralat, lihat contoh kod di bawah ini yang menunjukkan cara membuat objek Pemungut Ralat dan menambahkan semua ralat dalam objek tersebut untuk mengesan masalah:

pakej guru99.junit;import org.junit.Peraturan;import org.junit.Test;import org.junit.rules.ErrorCollector;kelas awam ErrorCollectorExample {@ Peraturanpengumpul awam ErrorCollector = ErrorCollector baru ();@ Ujiancontoh kekosongan awam () {collector.addError (Throwable baru ("Terdapat ralat pada baris pertama"));collector.addError (Throwable baru ("Terdapat ralat pada baris kedua"));collector.checkThat (getResults (),not (berisiString ("inilah ralat")));// semua baris kod akan dilaksanakan dan pada akhirnya kegagalan gabungan akan berlakudilog masuk.}}

Apa itu @ Peraturan di jUnit?

JUnit menyediakan jenis pengendalian ujian, Case Case atau test suite khas dengan menggunakan anotasi @ peraturan . Dengan menggunakan @ peraturan, anda boleh menambahkan atau mentakrifkan semula tingkah laku ujian dengan mudah.

Terdapat beberapa peraturan bawaan yang disediakan oleh JUnit API yang boleh digunakan oleh penguji, atau anda juga boleh menulis peraturan kami sendiri.

Lihat baris kod di bawah ini, yang menunjukkan cara menggunakan anotasi @ peraturan bersama dengan Ralat Pengumpul:

@ Peraturanpengumpul ErrorCollector awam = ErrorCollector baru ();

Contohnya menggunakan ErrorCollector

Untuk memahami pengumpul ralat, mari buat kelas dan peraturan untuk mengumpulkan semua kesalahan. Anda akan menambahkan semua kesalahan menggunakan addError (boleh dilempar) di sini.

Lihat kod di bawah ini yang hanya membuat peraturan yang tidak lain adalah membuat "Objek Pengumpul Ralat" Yang selanjutnya digunakan untuk menambahkan semua kesalahan untuk melaporkan masalah di akhir:

ErrorCollectorExample.java

pakej guru99.junit;import org.junit.Assert;import org.junit.Peraturan;import org.junit.Test;import org.junit.rules.ErrorCollector;kelas awam ErrorCollectorExample {@ Peraturanpengumpul awam ErrorCollector = ErrorCollector baru ();@ Ujiancontoh kekosongan awam () {collector.addError (Throwable baru ("Terdapat ralat pada baris pertama"));collector.addError (Throwable baru ("Terdapat ralat pada baris kedua"));System.out.println ("Hello");cuba {Assert.assertTrue ("A" == "B");} tangkapan (lemparan t) {pengumpul.addError (t);}System.out.println ("Dunia !!!!");}}

TestRunner.java

Mari tambahkan kelas ujian di atas dalam pelari ujian dan laksanakan untuk mengumpulkan semua kesilapan. 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 (ErrorCollectorExample.class);untuk (Kegagalan gagal: result.getFailures ()) {System.out.println (kegagalan.toString ());}System.out.println ("Hasil ==" + hasil.wasSukses ());}}

Pengeluaran:

Lihat jejak kegagalan yang mengesan semua kesalahan di satu tempat:

Kelebihan JUnit ErrorCollector

Anda boleh menggunakan penegasan JUnit untuk pengesahan fungsional atau GUI misalnya

  1. assertEquals (Mesej rentetan, Objek yang diharapkan, Objek yang sebenarnya) yang membandingkan bahawa dua objek adalah sama.
  2. Begitu juga, assertTrue (keadaan Boolean) menegaskan bahawa keadaan itu benar.

Dengan menggunakan penegasan, ujian pengesahan menjadi mudah. Tetapi satu masalah utama ialah pelaksanaan ujian akan berhenti walaupun satu pernyataan gagal.

Kesinambungan ujian dan pengendalian pemulihan sangat penting untuk menguji kejayaan automasi. Pengumpul Ralat adalah kaedah terbaik untuk menangani senario seperti itu.

Ringkasan :

  • Pengumpul ralat Junit membolehkan ujian diteruskan walaupun setelah masalah pertama dijumpai dan ujian gagal pada akhirnya
  • Pengumpul ralat mengumpulkan semua objek ralat dan melaporkannya, setelah itu, pelaksanaan ujian berakhir
  • Manfaat menambahkan semua kesalahan dalam Pengumpul Ralat adalah anda dapat mengesahkan semua kesalahan sekaligus
  • Pengumpul ralat hanya menambah ralat menggunakan kaedah addError (kesalahan boleh buang) yang disediakan oleh ErrorCollector.java.