JUnit Αναμενόμενη δοκιμή εξαίρεσης: @Test(αναμενόμενη)
JUnit παρέχει τη δυνατότητα για την ανίχνευση της εξαίρεσης και επίσης για τον έλεγχο του εάν ο κώδικας εισάγει την αναμενόμενη εξαίρεση ή όχι.
Το Junit4 παρέχει έναν εύκολο και ευανάγνωστο τρόπο για δοκιμές εξαιρέσεων, που μπορείτε να χρησιμοποιήσετε
- Προαιρετική παράμετρος (αναμενόμενη) του σχολιασμού @test και
- Για τον εντοπισμό των πληροφοριών, μπορεί να χρησιμοποιηθεί το "fail()".
Ενώ Δοκιμές εξαίρεση, πρέπει να διασφαλίσετε ότι η κλάση εξαίρεσης παρέχετε σε αυτήν την προαιρετική παράμετρο @test σχολιασμός είναι το ίδιο. Αυτό συμβαίνει επειδή περιμένετε μια εξαίρεση από τη μέθοδο που είστε Δοκιμή μονάδας, αλλιώς το δικό μας JUnit η δοκιμή θα αποτύγχανε.
Example@Test(expected=IllegalArgumentException.class)
Χρησιμοποιώντας την παράμετρο "αναμενόμενη", μπορείτε να καθορίσετε το όνομα εξαίρεσης που μπορεί να δημιουργήσει η δοκιμή μας. Στο παραπάνω παράδειγμα, χρησιμοποιείτε "IllegalArgumentException» το οποίο θα απορριφθεί από τη δοκιμή εάν ένας προγραμματιστής χρησιμοποιήσει ένα όρισμα που δεν επιτρέπεται.
Παράδειγμα χρησιμοποιώντας το @test (αναμενόμενο)
Ας κατανοήσουμε τη δοκιμή εξαίρεσης δημιουργώντας ένα Java κλάση με μια μέθοδο που ρίχνει μια εξαίρεση. Θα το χειριστείτε και θα το δοκιμάσετε σε μια δοκιμαστική τάξη. Θεωρώ JUnitΤο Message.java έχει μια μέθοδο που κάνει απλώς μια μαθηματική πράξη με βάση την είσοδο που λαμβάνει ο χρήστης. Εάν εισαχθεί οποιοδήποτε παράνομο όρισμα, θα ρίξει "ArithmeticException". Δείτε παρακάτω:
package guru99.junit; public class JUnitMessage{ private String message; public JUnitMessage(String message) { this.message = message; } public void printMessage(){ System.out.println(message); int divide=1/0; } public String printHiMessage(){ message="Hi!" + message; System.out.println(message); return message; } }
Επεξήγηση κώδικα:
- Κωδικός Γραμμή 7: Δημιουργία ενός παραμετροποιημένου κατασκευαστή με αρχικοποίηση πεδίου.
- Κωδικός Γραμμή 11-14: Δημιουργία μεθόδου για μαθηματική πράξη.
- Κωδικός Γραμμή 18: Δημιουργία άλλης μεθόδου εκτύπωσης μηνύματος.
- Κωδικός Γραμμή 20: Δημιουργία νέας συμβολοσειράς για την εκτύπωση ενός μηνύματος.
- Κωδικός Γραμμή 21: Εκτύπωση νέου μηνύματος που δημιουργήθηκε στη γραμμή 20.
Ας δημιουργήσουμε μια κλάση δοκιμής για την παραπάνω κλάση java για να επαληθεύσουμε την εξαίρεση.
Δείτε παρακάτω εξαίρεση δοκιμής κλάσης σε μονάδα δοκιμής (ArithmeticException εδώ) ρίχνοντας από πάνω την κλάση java:
AirthematicTest.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class AirthematicTest { public String message = "Saurabh"; JUnitMessage junitMessage = new JUnitMessage(message); @Test(expected = ArithmeticException.class) public void testJUnitMessage(){ System.out.println("Junit Message is printing "); junitMessage.printMessage(); } @Test public void testJUnitHiMessage(){ message="Hi!" + message; System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } }
Επεξήγηση κώδικα:
- Κωδικός Γραμμή 13: Χρησιμοποιώντας τον σχολιασμό @Test για τη δημιουργία της δοκιμής μας. Καθώς εκτελείτε την παραπάνω μέθοδο κλάσεων, θα καλέσει μια μαθηματική πράξη. Εδώ αναμένεται η Αριθμητική Εξαίρεση, επομένως την αναφέρετε ως παράμετρο στο @Test.
- Κωδικός Γραμμή 17: Επίκληση printMessage() JUnitMessage.java
- Κωδικός Γραμμή 18: Δημιουργία άλλης μεθόδου εκτύπωσης μηνύματος HI.
Εάν εκτελέσετε αυτήν την κλάση δοκιμής, η μέθοδος δοκιμής εκτελείται με κάθε καθορισμένη παράμετρο. Στο παραπάνω παράδειγμα, η μέθοδος δοκιμής εκτελείται πέντε φορές.
Ας το εκτελέσουμε και ας επαληθεύσουμε το αποτέλεσμα. Δείτε παρακάτω την κλάση δοκιμαστικού δρομέα προς εκτέλεση JunitTestExample.java
Παραγωγή:
Ακολουθεί η έξοδος που δείχνει επιτυχημένη δοκιμή χωρίς ίχνος αποτυχίας όπως δίνεται παρακάτω:
Σύνοψη
- Η δοκιμή εξαίρεσης είναι ένα ειδικό χαρακτηριστικό που εισάγεται στο JUnit4. Σε αυτό το σεμινάριο, έχετε μάθει πώς να δοκιμάζετε την εξαίρεση σε JUnit χρησιμοποιώντας το @test (εξαιρείται)
- Το Junit παρέχει τη δυνατότητα εντοπισμού της εξαίρεσης και επίσης ελέγχου εάν ο κώδικας ρίχνει εξαίρεση ή όχι
- Για δοκιμή εξαίρεσης, μπορείτε να χρησιμοποιήσετε
- Προαιρετική παράμετρος (αναμενόμενη) του σχολιασμού @test και
- Για τον εντοπισμό των πληροφοριών, μπορεί να χρησιμοποιηθεί το "fail()".