Junit Assert & AssertEquals με Παράδειγμα

Πίνακας περιεχομένων:

Anonim

Τι είναι το Junit Assert;

Το Assert είναι μια μέθοδος χρήσιμη για τον προσδιορισμό της κατάστασης Pass ή Fail μιας υπόθεσης δοκιμής. Οι μέθοδοι Assert παρέχονται από την κλάση org.junit.Assert που επεκτείνει την κλάση java.lang.Object.

Υπάρχουν διάφοροι τύποι ισχυρισμών όπως Boolean, Null, Identical κ.λπ.

Το Junit παρέχει μια τάξη με το όνομα Assert, η οποία παρέχει μια δέσμη μεθόδων διεκδίκησης χρήσιμες στη συγγραφή δοκιμαστικών περιπτώσεων και στον εντοπισμό αποτυχίας δοκιμής

Οι μέθοδοι επιβεβαίωσης παρέχονται από την κλάση org.junit.Assert που επεκτείνει την κλάση java.lang.Object .

Σε αυτό το σεμινάριο, θα μάθετε-

  • Μέθοδοι JUnit Assert
  • Boolean
  • Μηδενικό αντικείμενο
  • Πανομοιότυπο
  • Ισχύει ισούται
  • Assert Array ισούται
  • Αποτυχία μηνύματος
  • JUnit assertEquals
  • Ισχυρισμοί κυμαινόμενου σημείου
  • Παράδειγμα Assert JUnit

Μέθοδοι JUnit Assert

Boolean

Εάν θέλετε να δοκιμάσετε τις δυαδικές συνθήκες (true ή false), μπορείτε να χρησιμοποιήσετε τις ακόλουθες μεθόδους επιβεβαίωσης

  1. assertTrue (κατάσταση)
  2. assertFalse (κατάσταση)

Εδώ η συνθήκη είναι μια δυαδική τιμή.

Μηδενικό αντικείμενο

Εάν θέλετε να ελέγξετε την αρχική τιμή ενός αντικειμένου / μεταβλητής, έχετε τις ακόλουθες μεθόδους:

  1. assertNull (αντικείμενο)
  2. assertNotNull (αντικείμενο)

Εδώ το αντικείμενο είναι αντικείμενο Java π.χ. assertNull (πραγματικό).

Πανομοιότυπο

Αν θέλετε να ελέγξετε αν τα αντικείμενα είναι ίδια (δηλαδή σύγκριση δύο αναφορών με το ίδιο αντικείμενο java) ή διαφορετικά.

  1. assertSame (αναμενόμενο, πραγματικό), Θα επιστρέψει αληθές εάν αναμένεται == πραγματικό
  2. assertNotSame (αναμένεται, πραγματικό)

Ισχύει ισούται

Εάν θέλετε να δοκιμάσετε την ισότητα δύο αντικειμένων, έχετε τις ακόλουθες μεθόδους

  • assertEquals (αναμενόμενο, πραγματικό)

Θα επιστρέψει αληθές εάν: αναμενόμενο . Equals (πραγματικό) επιστρέφει true

Assert Array ισούται

Εάν θέλετε να δοκιμάσετε την ισότητα των συστοιχιών, έχετε τις ακόλουθες μεθόδους όπως δίνονται παρακάτω:

  • assertArrayEquals (αναμενόμενο, πραγματικό)

Η παραπάνω μέθοδος πρέπει να χρησιμοποιηθεί εάν οι πίνακες έχουν το ίδιο μήκος, για κάθε έγκυρη τιμή για το i , μπορείτε να το ελέγξετε όπως δίνεται παρακάτω:

  • assertEquals (αναμενόμενο [i], πραγματικό [i])
  • assertArrayEquals (αναμένεται [i], πραγματικό [i])

Αποτυχία μηνύματος

Εάν θέλετε να ρίξετε οποιοδήποτε σφάλμα ισχυρισμού, έχετε αποτύχει () που οδηγεί πάντα σε αποτυχημένη ετυμηγορία.

  • Αποτυχία (μήνυμα);

Μπορείτε να έχετε τη μέθοδο επιβεβαίωσης με μια επιπλέον παράμετρο String ως την πρώτη παράμετρο. Αυτή η συμβολοσειρά θα επισυναφθεί στο μήνυμα αποτυχίας εάν ο ισχυρισμός αποτύχει. Π.χ. αποτυχία (μήνυμα) μπορεί να γραφτεί ως

  • assertEquals (μήνυμα, αναμενόμενο, πραγματικό)

JUnit assertEquals

Έχετε assertEquals (a, b) που βασίζεται στη μέθοδο ίσο () της κλάσης Object.

  • Εδώ θα αξιολογηθεί ως a.equals (b).
  • Εδώ η υπό δοκιμή τάξη χρησιμοποιείται για τον προσδιορισμό μιας κατάλληλης σχέσης ισότητας.
  • Εάν μια κλάση δεν παρακάμψει τη μέθοδο Equals () της κλάσης Object , θα λάβει την προεπιλεγμένη συμπεριφορά της μεθόδου Equals () , δηλαδή ταυτότητα αντικειμένου.

Αν τα a και b είναι πρωτόγονα όπως byte , int , boolean κ.λπ. τότε θα γίνουν τα ακόλουθα για assertEquals (a, b):

Τα a και b θα μετατραπούν στον αντίστοιχο τύπο αντικειμένου περιτυλίγματος ( Byte, Integer , Boolean κ.λπ.) και στη συνέχεια θα αξιολογηθούν τα a.equals (b) .

Για παράδειγμα: Εξετάστε τις παρακάτω συμβολοσειρές που έχουν τις ίδιες τιμές, ας το δοκιμάσουμε χρησιμοποιώντας το assertTrue

Συμβολοσειρά obj1 = "Junit";Συμβολοσειρά obj2 = "Junit";assertEquals (obj1, obj2);

Η παραπάνω δήλωση επιβεβαίωσης θα επιστρέψει true καθώς το obj1.equals (obj2) επιστρέφει true.

Ισχυρισμοί κυμαινόμενου σημείου

Όταν θέλετε να συγκρίνετε τύπους κυμαινόμενου σημείου (π.χ. διπλός ή πλωτήρας ), χρειάζεστε μια πρόσθετη απαιτούμενη δέλτα παραμέτρου για να αποφύγετε προβλήματα με στρογγυλοποιημένα σφάλματα κατά τη σύγκριση.

Ο ισχυρισμός αξιολογείται όπως δίνεται παρακάτω:

  • Math.abs (αναμενόμενο - πραγματικό) <= δέλτα

Για παράδειγμα:

assertEquals (aDoubleValue, anotherDoubleValue, 0.001)

Παράδειγμα Assert JUnit

Το παρακάτω παράδειγμα δείχνει πώς να διεκδικήσετε μια συνθήκη χρησιμοποιώντας μεθόδους JUnit assert.

Ας δημιουργήσουμε μια απλή δοκιμαστική τάξη με το όνομα Junit4AssertionTest.java και μια δοκιμαστική τάξη RunRunner.java .

Θα δημιουργήσετε λίγες μεταβλητές και σημαντικές δηλώσεις επιβεβαίωσης στο JUnit.

Σε αυτό το παράδειγμα, θα εκτελέσετε την τάξη δοκιμής μας χρησιμοποιώντας το TestRunner.java

Βήμα 1) Ας δημιουργήσουμε μια τάξη που να καλύπτει όλες τις σημαντικές μεθόδους δήλωσης ισχυρισμού σε junit

Junit4AssertionTest.java

πακέτο guru99.junit;εισαγωγή στατικού org.junit.Assert. *;εισαγωγή org.junit.Test;δημόσια τάξη Junit4AssertionTest {@Δοκιμήpublic void testAssert () {// Μεταβλητή δήλωσηString string1 = "Junit";String string2 = "Junit";String string3 = "δοκιμή";String string4 = "δοκιμή";String string5 = null;int μεταβλητή1 = 1;int μεταβλητή2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Δηλώσεις επιβεβαίωσηςassertEquals (string1, string2);assertSame (string3, string4);assertNotSame (string1, string3);assertNotNull (string1);assertNull (string5);assertTrue (μεταβλητή1 <μεταβλητή2);assertArrayEquals (airethematicArrary1, airethematicArrary2);}}

Βήμα 2) Πρέπει να δημιουργήσετε μια δοκιμαστική κλάση δρομέα για να εκτελέσετε την παραπάνω κλάση:

TestRunner.java

πακέτο guru99.junit;εισαγωγή org.junit.runner.JUnitCore;εισαγωγή org.junit.runner.Result;εισαγωγή org.junit.runner.notification.Failure;δημόσια τάξη TestRunner {Δημόσιο στατικό κενό (String [] args) {Αποτέλεσμα αποτελέσματος = JUnitCore.runClasses (Junit4AssertionTest.class);για (Αποτυχία αποτυχίας: result.getFailures ()) {System.out.println (fail.toString ());}System.out.println ("Αποτέλεσμα ==" + αποτέλεσμα.wasSuccessful ());}}

Βήμα 3) Ας αναλύσουμε την αναμενόμενη παραγωγή βήμα προς βήμα:

Εξετάστε όλες τις δηλώσεις ενός προς ένα:

  1. assertEquals (string1, string2);

Τώρα συγκρίνετε το string1 = "Junit" με το string2 = "Junit" με την ίδια μέθοδο της κλάσης αντικειμένων. Αντικατάσταση της μεθόδου assertEquals από τη μέθοδο java.lang.Object.equals ():

string1.equals (string2) => επιστρέφει true

Έτσι το assertEquals (string1, string2) θα επιστρέψει true .

  1. assertSame (string3, string4);

Η λειτουργία "assertSame ()" είναι να ελέγξετε ότι τα δύο αντικείμενα αναφέρονται στο ίδιο αντικείμενο.

Δεδομένου ότι το string3 = "test" και το string4 = "test" σημαίνει ότι τόσο το string3 όσο και το string4 είναι του ίδιου τύπου, έτσι το assertSame (string3, string4) θα επιστρέψει αληθινό .

  1. assertNotSame (string1, string3);

Η λειτουργία "assertNotSame ()" είναι να ελέγξετε ότι τα δύο αντικείμενα δεν αναφέρονται στο ίδιο αντικείμενο.

Δεδομένου ότι το string1 = "Junit" και το string3 = "test" σημαίνει ότι τόσο το string1 όσο και το string3 είναι διαφορετικού τύπου, έτσι το assertNotSame (string1, string3) θα επιστρέψει αληθινό .

  1. assertNotNull (string1);

Η λειτουργία "assertNotNull ()" είναι να ελέγξετε ότι ένα αντικείμενο δεν είναι μηδενικό.

Δεδομένου ότι το string1 = "Junit" που είναι μη μηδενική τιμή, έτσι το assertNotNull (string1) θα επιστρέψει αληθινό .

  1. assertNull (string5);

Η λειτουργία "assertNull ()" είναι να ελέγξετε αν ένα αντικείμενο είναι μηδενικό.

Δεδομένου ότι το string5 = null που είναι μια τιμή null, το assertNull (string5) θα επιστρέψει αληθινό .

  1. assertTrue (μεταβλητή1 <μεταβλητή2);

Η λειτουργία "assertTrue ()" είναι να ελέγξετε αν μια συνθήκη είναι αληθής.

Δεδομένου ότι η μεταβλητή1 = 1 και η μεταβλητή2 = 2, η οποία δείχνει ότι η μεταβλητή1 <μεταβλητή2 συνθήκη είναι αληθής, έτσι το assertTrue (μεταβλητή1 <μεταβλητή2) θα επιστρέψει αληθινό .

  1. assertArrayEquals (airethematicArrary1, airethematicArrary2);

Η λειτουργία "assertArrayEquals ()" είναι να ελέγξετε ότι ο αναμενόμενος πίνακας και ο πίνακας που προκύπτει είναι ίσοι. Ο τύπος του Array μπορεί να είναι int, long, short, char, byte ή java.lang.Object.

Εφόσον το airethematicArrary1 = {1, 2, 3} και το airethematicArrary2 = {1, 2, 3} που δείχνει ότι και οι δύο συστοιχίες είναι ίσες, έτσι το assertArrayEquals (airethematicArrary1, airethematicArrary2) θα επιστρέψει αληθινό

Δεδομένου ότι και οι επτά δηλώσεις επιβεβαίωσης της κλάσης Junit4AssertionTest.java επιστρέφουν αληθείς, επομένως όταν εκτελείτε την δοκιμαστική κλάση, θα επιστρέψει μια επιτυχημένη δοκιμή. (δείτε την έξοδο παρακάτω)

Βήμα 4) Κάντε δεξί κλικ στο Junit4AssertionTest.java και κάντε κλικ στο runAs-> JUnit. Θα δείτε την έξοδο όπως δίνεται παρακάτω:

Η παραπάνω έξοδος δείχνει ένα επιτυχημένο αποτέλεσμα δοκιμής όπως αναμενόταν.

Περίληψη:

Σε αυτό το σεμινάριο, μάθατε όλους τους σημαντικούς τύπους μεθόδων διεκδίκησης που παρέχονται από την JUnit. Επίσης, έχετε δει τα παραδείγματα ισχυρισμών. Αυτό δείχνει ότι αν όλες οι δηλώσεις επιβεβαιώσουν επιστρέψουν αληθινές, τότε το τεστ GUI θα επιστρέψει ένα πραγματικό αποτέλεσμα και αν η μεμονωμένη δοκιμή αποτύχει θα επιστρέψει ένα αποτυχημένο αποτέλεσμα.