assertions java java assert tutorial with code examples
Αυτό το Java Assert Tutorial εξηγεί τα πάντα σχετικά με Assertions στην Java. Θα μάθετε να Ενεργοποιείτε και να απενεργοποιείτε Assertions, πώς να χρησιμοποιείτε Assertions, Assert Παραδείγματα, κλπ:
Στα προηγούμενα μαθήματά μας, έχουμε ήδη συζητήσει εξαιρέσεις στην Java. Αυτά είναι τα σφάλματα που εντοπίζονται κατά το χρόνο εκτέλεσης. Παρόμοια με τις εξαιρέσεις υπάρχουν μερικές άλλες κατασκευές που μπορούμε να χρησιμοποιήσουμε κατά τη μεταγλώττιση για να ελέγξουμε την ορθότητα του κώδικα. Αυτές οι κατασκευές ονομάζονται 'Assertions'.
Σε αυτό το σεμινάριο, θα συζητήσουμε λεπτομερώς τους ισχυρισμούς στην Java. Μπορούμε να ορίσουμε έναν ισχυρισμό ως δομή που μας επιτρέπει να ελέγξουμε την ορθότητα ή τη σαφήνεια των υποθέσεων που έχουμε κάνει στο πρόγραμμα Java.
=> Ρίξτε μια ματιά στον Οδηγό για αρχάριους Java εδώ.
Τι θα μάθετε:
Ισχυρισμοί στην Java
Έτσι, όταν εκτελούμε ισχυρισμό σε ένα πρόγραμμα, θεωρείται ότι είναι αλήθεια. Εάν γίνει ψευδές ή αποτύχει, τότε το JVM θα ρίξει ένα AssertionError.
Χρησιμοποιούμε ισχυρισμούς κατά την ανάπτυξη για δοκιμαστικούς σκοπούς. Κατά το χρόνο εκτέλεσης, οι ισχυρισμοί απενεργοποιούνται από την Java.
Πώς διαφέρουν οι ισχυρισμοί από τις κανονικές εξαιρέσεις;
Σε αντίθεση με τις κανονικές εξαιρέσεις, οι ισχυρισμοί είναι κυρίως χρήσιμοι για τον έλεγχο των λογικών καταστάσεων σε ένα πρόγραμμα για το οποίο έχουμε αμφιβολίες. Επίσης, σε αντίθεση με τις κανονικές εξαιρέσεις που μπορούν επίσης να απορριφθούν κατά το χρόνο εκτέλεσης, οι ισχυρισμοί απενεργοποιούνται κατά το χρόνο εκτέλεσης.
Οι ισχυρισμοί μπορούν να χρησιμοποιηθούν στις θέσεις του κώδικα όπου ο προγραμματιστής έχει τον μέγιστο έλεγχο όπως μπορούν να χρησιμοποιηθούν ως παράμετροι σε ιδιωτικές μεθόδους. Οι ισχυρισμοί μπορούν επίσης να χρησιμοποιηθούν με υποθέσεις υπό όρους. Παρομοίως, οι συνθήκες στην αρχή οποιασδήποτε μεθόδου μπορούν να περιέχουν ισχυρισμούς.
Ωστόσο, οι ισχυρισμοί δεν πρέπει να ληφθούν ως αντικατάσταση των μηνυμάτων σφάλματος. Ούτε οι ισχυρισμοί πρέπει να χρησιμοποιούνται σε δημόσιες μεθόδους, για παράδειγμα, για να ελέγξετε τα επιχειρήματα. Το πιο σημαντικό δεν πρέπει να χρησιμοποιούμε ισχυρισμούς σε ορίσματα γραμμής εντολών στην Java.
Στην Java, οι ισχυρισμοί είναι απενεργοποιημένοι από προεπιλογή. Επομένως, για να μπορέσουν οι ισχυρισμοί να εργαστούν σε ένα πρόγραμμα Java, πρέπει πρώτα να ενεργοποιήσουμε τους ισχυρισμούς.
Ενεργοποίηση ισχυρισμών σε Java
Για να ενεργοποιήσουμε τους ισχυρισμούς, πρέπει να το κάνουμε από τη γραμμή εντολών.
Ακολουθεί η γενική σύνταξη για την ενεργοποίηση του Assertion σε Java.
java –ea: arguments
ή
java –enableassertions: arguments
Για παράδειγμα, μπορούμε να ενεργοποιήσουμε ισχυρισμούς για μια συγκεκριμένη τάξη όπως φαίνεται παρακάτω:
java –ea TestProgram
ή
java –enableassertions TestProgram
Εδώ, το TestProgram είναι μια κλάση για την οποία πρέπει να ενεργοποιηθεί ο ισχυρισμός.
Όταν η συνθήκη ισχύει στην δήλωση assert στο πρόγραμμα και οι ισχυρισμοί είναι ενεργοποιημένοι, τότε το πρόγραμμα θα εκτελεστεί κανονικά. Όταν η συνθήκη είναι ψευδής και οι ισχυρισμοί είναι ενεργοποιημένοι, τότε το πρόγραμμα ρίχνει το AssertionError και το πρόγραμμα σταματά.
Υπάρχουν διάφορες παραλλαγές για την ενεργοποίηση των ισχυρισμών χρησιμοποιώντας τη γραμμή εντολών.
# 1) java –ea
Όταν η παραπάνω εντολή δίνεται στη γραμμή εντολών, τότε οι ισχυρισμοί ενεργοποιούνται σε όλες τις κλάσεις εκτός από τις κλάσεις συστήματος.
# 2) java –ea Main
Η παραπάνω εντολή επιτρέπει την επιβεβαίωση για όλες τις τάξεις στο κύριο πρόγραμμα.
# 3) java –ea TestClass Main
Αυτή η εντολή επιτρέπει ισχυρισμούς για μία μόνο κλάση - «TestClass» στο Κύριο πρόγραμμα.
καλύτερο πρόγραμμα λήψης youtube για τα Windows 10
# 4) java –ea com.packageName… Main
Η παραπάνω εντολή επιτρέπει την επιβεβαίωση για το πακέτο com.packageName και τα υπο-πακέτα του στο Κύριο πρόγραμμα.
# 5) java –ea… Main
Ενεργοποιεί την επιβεβαίωση για το πακέτο χωρίς όνομα στον τρέχοντα κατάλογο εργασίας.
# 6) java –esa: επιχειρήματα Ή java –enablesystemassertions: επιχειρήματα
Η παραπάνω εντολή επιτρέπει ισχυρισμούς για τις κλάσεις συστήματος.
Απενεργοποίηση ισχυρισμών
Μπορούμε επίσης να απενεργοποιήσουμε τους ισχυρισμούς μέσω της γραμμής εντολών.
Η γενική σύνταξη για την απενεργοποίηση των ισχυρισμών στην Java είναι:
java –da arguments
Ή
java –disableassertions arguments
Ομοίως, για να απενεργοποιήσουμε τους ισχυρισμούς σε κλάσεις συστήματος, χρησιμοποιούμε την ακόλουθη σύνταξη:
java – dsa: arguments
Ή
java –disablesystemassertions:arguments
Λέξη-κλειδί «assert» στην Java
Η γλώσσα Java παρέχει τη λέξη-κλειδί 'assert' που επιτρέπει στους προγραμματιστές να επαληθεύουν τις παραδοχές που έχουν κάνει για το πρόγραμμα ή την κατάσταση του προγράμματος.
Έτσι, μπορούμε να χρησιμοποιήσουμε τη λέξη-κλειδί 'assert' για να παρέχουμε ισχυρισμούς στην Java για να επαληθεύσουμε συνθήκες που διαφορετικά θα εμπόδιζαν την ομαλή λειτουργία του προγράμματος.
Η λέξη-κλειδί «assert» χρησιμοποιείται από την Java 1.4 αλλά παραμένει η ελάχιστα γνωστή λέξη-κλειδί στην Java. Όταν χρησιμοποιούμε τη λέξη-κλειδί assert στην Java, πρέπει να το κάνουμε σε μια δήλωση Assert.
Επιβεβαίωση δήλωσης σε Java
Στην Java, η δήλωση επιβεβαίωσης ξεκινά με τη λέξη-κλειδί «στοιχείο» ακολουθούμενη από μια έκφραση Boolean.
Η δήλωση επιβεβαίωσης στην Java μπορεί να γραφτεί με δύο τρόπους:
- διεκδικούν έκφραση
- ισχυρίστε την έκφραση1: έκφραση2;
Και στις δύο προσεγγίσεις, οι εκφράσεις που χρησιμοποιούνται με τη λέξη-κλειδί Assert είναι οι εκφράσεις Boolean.
Εξετάστε την ακόλουθη δήλωση ως παράδειγμα.
assert value >= 10 : “greater than 10”;
Εδώ, η δήλωση επιβεβαίωσης ελέγχει μια συνθήκη και αν η συνθήκη είναι αληθής, εκτυπώνεται ένα μήνυμα. Έτσι μπορούμε να έχουμε ισχυρισμούς με το μήνυμά μας.
Τρόπος χρήσης του Assert σε Java
Μέχρι στιγμής, έχουμε συζητήσει τη λέξη-κλειδί επιβεβαίωσης και τη δήλωση ισχυρισμού στην Java. Τώρα, ας εξετάσουμε ένα παράδειγμα για να δείξουμε πώς να χρησιμοποιήσουμε το assert στην Java.
Για να προσθέσουμε ισχυρισμούς, πρέπει απλώς να προσθέσουμε μια δήλωση ισχυρισμού ως εξής:
public void setup_connetion () { Connection conn = getConnection (); assert conn != null; }
Μπορούμε επίσης να δώσουμε τον παραπάνω ισχυρισμό διαφορετικά όπως φαίνεται παρακάτω:
public void setup_connection () { Connection conn = getConnection (); assert conn != null: “Connection is null”; }
Και οι δύο δομές κώδικα ελέγχουν αν η σύνδεση επιστρέφει μια μη μηδενική τιμή. Εάν επιστρέψει μια τιμή null, τότε το JVM θα ρίξει ένα σφάλμα - AssertionError. Αλλά στη δεύτερη περίπτωση, ένα μήνυμα παρέχεται στη δήλωση assert, οπότε αυτό το μήνυμα θα χρησιμοποιηθεί για την κατασκευή AssertionError.
Στη δεύτερη περίπτωση με ενεργοποιημένους ισχυρισμούς, η εξαίρεση θα μοιάζει με:
Exception in thread 'main' java.lang.AssertionError: Connection is null at line numbers…
Παράδειγμα επιβεβαίωσης σε Java
Ας εφαρμόσουμε ένα παράδειγμα χρήσης των ισχυρισμών στην Java.
public class Main { public static void main(String() args) { try { System.out.println('Testing Assertions...'); assert true : 'We don't see this.'; assert false : 'Visible if assertions are ON.'; } catch (AssertionError e) { e.printStackTrace(); } } }
Παραγωγή
Η παραπάνω έξοδος δίνεται όταν οι ισχυρισμοί δεν είναι ενεργοποιημένοι. Εάν ο ισχυρισμός ήταν ενεργοποιημένος, τότε θα εμφανιστεί το δεύτερο μήνυμα (assert false).
Τώρα ας δείξουμε ένα άλλο παράδειγμα . Σημειώστε ότι εδώ έχουμε ενεργοποιήσει τον ισχυρισμό στην Java στον υπολογιστή μας όπου εκτελούμε αυτό το πρόγραμμα.
class Main { public static void main(String args()) { String() weekends = {'Friday', 'Saturday', 'Sunday'}; assert weekends.length == 2; System.out.println('We have ' + weekends.length + ' weekend days in a week'); } }
Παραγωγή
Καθώς η διάρκεια του σαββατοκύριακου δεν ταιριάζει με τη διάρκεια που καθορίζεται στη δήλωση επιβεβαίωσης, η παραπάνω εξαίρεση απορρίπτεται Εάν ο ισχυρισμός ήταν απενεργοποιημένος, τότε το πρόγραμμα θα είχε εμφανίσει το καθορισμένο μήνυμα αντί για εξαίρεση ισχυρισμού.
Γιατί χρησιμοποιούνται οι ισχυρισμοί στην Java;
Χρησιμοποιούμε ισχυρισμούς στο πρόγραμμα Java για να βεβαιωθούμε ότι οι παραδοχές που έχουμε κάνει στο πρόγραμμά μας είναι σωστές.
Για παράδειγμα, αν θέλουμε να βεβαιωθούμε ότι ο κώδικας που φαίνεται να είναι απρόσιτος είναι πράγματι απρόσιτος. Ή θέλουμε να βεβαιωθούμε ότι οποιαδήποτε μεταβλητή έχει τιμή σε ένα καθορισμένο εύρος.
Όταν κάνουμε μια τέτοια υπόθεση, παρέχουμε ισχυρισμούς για να βεβαιωθούμε ότι είναι όντως σωστοί.
καλύτερο πρόγραμμα για έλεγχο θερμοκρασίας CPU
Συχνές Ερωτήσεις
Ε # 1) Το Assert ρίχνει μια εξαίρεση Java;
Απάντηση: Το Assert ρίχνει συνήθως το 'AssertionError' όταν η υπόθεση που έγινε είναι λάθος. Το AssertionError επεκτείνεται από την κατηγορία Σφάλμα (που τελικά εκτείνεται από το Throwable).
Ε # 2) Τι συμβαίνει όταν ένας ισχυρισμός αποτύχει στην Java;
Απάντηση: Εάν οι ισχυρισμοί είναι ενεργοποιημένοι για το πρόγραμμα στο οποίο αποτυγχάνει η δήλωση, τότε θα ρίξει το AssertionError.
Q # 3) Τι επιστρέφει ένας ισχυρισμός στην Java;
Απάντηση: Μια δήλωση επιβεβαίωσης δηλώνει μια συνθήκη Boolean που αναμένεται να συμβεί σε ένα πρόγραμμα. Εάν αυτή η συνθήκη Boolean αξιολογηθεί ως false, τότε ένα AssertionError δίνεται κατά το χρόνο εκτέλεσης, υπό την προϋπόθεση ότι η δήλωση είναι ενεργοποιημένη.
Εάν η υπόθεση είναι σωστή, τότε η συνθήκη Boolean θα επιστρέψει αληθινή.
Q # 4) Μπορούμε να εντοπίσουμε το σφάλμα ισχυρισμού;
Απάντηση: Το AssertionError που ρίχνεται από τη δήλωση assert είναι μια ανεξέλεγκτη εξαίρεση που επεκτείνει την κλάση Σφάλμα. Επομένως, δεν απαιτούνται ισχυρισμοί για να τους δηλώσετε ρητά και επίσης δεν χρειάζεται να δοκιμάσετε ή να τους πιάσετε.
Ε # 5) Πώς ισχυρίζεστε μια εξαίρεση;
Απάντηση: Για να υποστηρίξουμε μια εξαίρεση δηλώνουμε ένα αντικείμενο του ExpectedException ως εξής:
δημόσιο ExpectedException εξαίρεση = ExpectedException. κανένα ();
Στη συνέχεια, χρησιμοποιούμε τις μεθόδους αναμενόμενου () και αναμενόμενου μηνύματος () στη μέθοδο Δοκιμή, για να επιβεβαιώσουμε την εξαίρεση και να δώσουμε το μήνυμα εξαίρεσης.
συμπέρασμα
Με αυτό, ολοκληρώσαμε αυτό το σεμινάριο για ισχυρισμούς στην Java. Συζητήσαμε τον ορισμό και τον σκοπό των ισχυρισμών στην Java. Για να χρησιμοποιήσουμε τον ισχυρισμό στο πρόγραμμα Java πρέπει πρώτα να τους επιτρέψουμε να χρησιμοποιούν τη γραμμή εντολών.
Εξερευνήσαμε τους διάφορους τρόπους με τους οποίους μπορούμε να ενεργοποιήσουμε ισχυρισμούς σε επίπεδο προγράμματος, σε επίπεδο πακέτου, σε επίπεδο καταλόγου κ.λπ. Η δήλωση λέξης-κλειδιού και στοιχείων ενεργητικού μας βοηθούν να χρησιμοποιήσουμε ισχυρισμούς.
Είδαμε ότι ένα AssertionError δίνεται όταν αποτυγχάνει μια δήλωση. Οι ισχυρισμοί στην Java χρησιμοποιούνται ως επί το πλείστον κατά τη μεταγλώττιση και απενεργοποιούνται από προεπιλογή κατά την εκτέλεση.
Επιπλέον, οι ισχυρισμοί χρησιμοποιούνται κυρίως στο πλαίσιο JUnit της Java στο οποίο γράφουμε τις δοκιμαστικές θήκες για να δοκιμάσουμε εφαρμογές.
=> Διαβάστε μέσω της σειράς Easy Java Training.
Συνιστώμενη ανάγνωση
- Ισχυρισμοί στο Σελήνιο χρησιμοποιώντας πλαίσια Junit και TestNG
- Παραδείγματα ισχυρισμών σεληνίου - Πρακτικές εφαρμογές σε έργα
- Δήλωση στο SOAtest με παράδειγμα κώδικα XML
- C ++ Assert (): Διαχείριση ισχυρισμών σε C ++ με παραδείγματα
- Κατανόηση των ισχυρισμών στο SoapUI - SoapUI Tutorial # 5
- Εκπαιδευτικό πρόγραμμα JAVA για αρχάριους: 100+ πρακτικά εκπαιδευτικά βίντεο Java
- Jagged Array In Java - Εκμάθηση με παραδείγματα
- Java DataTypes, Loops, Arrays, Switch και Assertions