junit tutorial beginners what is junit testing
Αυτό το σεμινάριο JUnit για αρχάριους εξηγεί τι είναι το Testing Unit, Test Coverage και τι είναι το JUnit Testing Framework μαζί με παραδείγματα JUnit Testcases:
Αυτή η σειρά JUnit έχει προετοιμαστεί να επικεντρωθεί στο κοινό μας που είναι απόλυτοι αρχάριοι, καθώς και σε εκείνους που έχουν καλή γνώση της Java ή του JUnit με έντονο ενδιαφέρον για την εκμάθηση του JUnit.
Η σειρά στο σύνολό της παρουσιάστηκε με τέτοιο τρόπο ώστε να μπορείτε να ερμηνεύσετε τη διαφορά μεταξύ JUnit 4 και Junit 5.
Ας αρχίσουμε να εξερευνούμε το JUnit τώρα !!
Τι θα μάθετε:
java προσθέτοντας τιμές σε έναν πίνακα
Λίστα εκπαιδευτικών σε αυτήν τη σειρά JUnit
Εκμάθηση # 1: Εκπαιδευτικό πρόγραμμα JUnit για αρχάριους - Τι είναι το JUnit Testing; (Αυτό το σεμινάριο)
Εκμάθηση # 2: Λήψη, εγκατάσταση και ρύθμιση παραμέτρων του JUnit In Eclipse
Εκμάθηση # 3: Δοκιμές JUnit: Τρόπος σύνταξης περιπτώσεων δοκιμής JUnit με παραδείγματα
Εκμάθηση # 4: Τι είναι ένα τεστ JUnit: Tutorial με JUnit 4 Παραδείγματα
Εκμάθηση # 5: Πολλαπλοί τρόποι εκτέλεσης δοκιμών JUnit
Εκμάθηση # 6: Λίστα σχολίων JUnit: JUnit 4 Vs JUnit 5
Εκμάθηση # 7: JUnit Ignore Test Case: JUnit 4 @Ignore Vs JUnit 5 @Disabled
Εκμάθηση # 8: JUnit Test Suite & Filtering Test Case: JUnit 4 Vs JUnit 5
Εκμάθηση # 9: Εντολή εκτέλεσης δοκιμής JUnit: Σειρά δοκιμών JUnit 4 Vs JUnit 5
Εκμάθηση # 10: Πώς να χρησιμοποιήσετε το JUnit 5 Annotation @ReppledTest με παραδείγματα
Εκμάθηση # 11: JUnit 5 Nested Class: @Nested Tutorial με παραδείγματα
Εκμάθηση # 12: JUnit 5 προσαρμοσμένο εμφανιζόμενο όνομα & εκτέλεση υπό όρους δοκιμής
Εκμάθηση # 13: JUnit Vs TestNG - Ποιες είναι οι διαφορές
Εκμάθηση JUnit
Σε μια τυπική προσέγγιση δοκιμαστικής ανάπτυξης (TDD), οι προγραμματιστές επικεντρώνονται στη δοκιμή μονάδων σε κάθε κομμάτι του κώδικα που αναπτύσσουν. Όσο καλύτερη είναι η δοκιμή ενός προϊόντος, τόσο καλύτερη είναι η ποιότητα αυτού. Όλοι γνωρίζουμε, ότι οι δοκιμές πρέπει να γίνονται παράλληλα με κάθε φάση που περνάει στον κύκλο ζωής ανάπτυξης λογισμικού.
Ξεκινώντας από την απαίτηση και την ανάλυση έως το σχεδιασμό και την ανάπτυξη μέχρι τη συντήρηση, κάθε φάση πρέπει να έχει την κατάλληλη φάση δοκιμής που να σχετίζεται με αυτήν. Ο έλεγχος μονάδας μετά την ανάπτυξη είναι αυτό που συνιστάται για τη δημιουργία μιας ισχυρής εφαρμογής και για τη δημιουργία ενός βελτιστοποιημένου κώδικα.
Τι είναι η δοκιμή μονάδας;
Η δοκιμή μονάδας δοκιμάζει μια μικρή λογική ή έναν κωδικό για να επαληθεύσει ότι η έξοδος του κώδικα είναι όπως αναμένεται κατά την εισαγωγή συγκεκριμένων δεδομένων ή / και για την ικανοποίηση συγκεκριμένων προϋποθέσεων. Συνήθως, οι δοκιμές μονάδας υποτίθεται ότι είναι ανεξάρτητες από τις άλλες δοκιμές.
Οι δοκιμές μονάδας δεν είναι εφικτές για τη δοκιμή σύνθετων διεπαφών με άλλη εφαρμογή ή τρίτες / εξωτερικές υπηρεσίες. Μια δοκιμή μονάδας στοχεύει μόνο μια μικρή μονάδα κώδικα που θα μπορούσε να είναι απλώς μια μέθοδος ή μια τάξη.
Βοηθά τον προγραμματιστή να ανακαλύψει ζητήματα στην τρέχουσα λογική και τυχόν αποτυχίες παλινδρόμησης λόγω της τρέχουσας αλλαγής. Εκτός αυτού, παρέχει επίσης πληροφορίες για το πώς ο τρέχων κώδικας μπορεί να επηρεάσει τη μελλοντική εφαρμογή.
Κάλυψη δοκιμής
Το ποσοστό του κώδικα που ελέγχεται από δοκιμές μονάδας καλείται κάλυψη δοκιμών .
Ο στόχος είναι να υπάρξει καλύτερη και περισσότερη δοκιμαστική κάλυψη του κώδικα, ο οποίος στο μέλλον συνεχίζει να προσθέτει στη σουίτα παλινδρόμησης και βοηθά στην αύξηση της αυτοματοποιημένης εκτέλεσης και της επαλήθευσης δοκιμών, μειώνοντας έτσι τη μη αυτόματη προσπάθεια που εμπλέκεται στον έλεγχο παλινδρόμησης.
Η εκτέλεση δοκιμών βοηθά αυτόματα στον εντοπισμό προβλημάτων παλινδρόμησης λογισμικού που εισάγονται από αλλαγές στον τρέχοντα κώδικα. Η κάλυψη του κωδικού σας με υψηλή δοκιμή σάς επιτρέπει να συνεχίσετε να αναπτύσσετε λειτουργίες χωρίς να χρειάζεται να εκτελέσετε πολλές μη αυτόματες δοκιμές.
Πολλοί έρχονται με μια ερώτηση ως προς πόση δοκιμαστική κάλυψη είναι απαραίτητη . Η απάντηση σε αυτό το ερώτημα είναι ότι δεν υπάρχει σκληρός και γρήγορος κανόνας για το πόσο σημαντική είναι η κάλυψη των δοκιμών. είναι όλα κρίσιμα. Η κρίση βελτιώνεται με την εμπειρία στη ροή εργασίας της εφαρμογής και την ιστορική γνώση των ελαττωμάτων που έχουν βρεθεί μέχρι στιγμής.
η προεπιλεγμένη πύλη δεν είναι διαθέσιμη windows 10 ethernet
Οι αποτελεσματικές δοκιμές δεν χρειάζεται απαραίτητα να έχουν κάλυψη δοκιμών 100% ή να ενσωματώνουν δοκιμές αυτοματισμού ή / και δοκιμές μονάδας για κάθε κάλυψη κλάδου ή διαδρομής.
Ορισμένες ασήμαντες επαληθεύσεις, όπως ένα μήνυμα σφάλματος επικύρωσης για ένα υποχρεωτικό πεδίο που παραμένει κενό και δεν έχει ελάττωμα από τα χρόνια δεν χρειάζεται να συμπεριληφθεί στη σουίτα παλινδρόμησης.
Χειροκίνητη δοκιμή Vs Automated Testing
Ο έλεγχος μονάδας μπορεί να γίνει μέσω δύο προσεγγίσεων:
- Χειροκίνητη δοκιμή
- Αυτοματοποιημένες δοκιμές
Και στις δύο προσεγγίσεις η ροή εργασίας παραμένει κοινή:
- Δημιουργία δοκιμαστικής θήκης
- Αναθεωρώντας το
- Επαναλάβετε την εργασία εάν χρειάζονται διορθώσεις
- Εκτελέστε τη δοκιμαστική θήκη
- Αναλύστε τα αποτελέσματα των δοκιμών
Η αυτόματη δοκιμή προτιμάται από τη μη αυτόματη δοκιμή για τους παρακάτω λόγους:
Μη αυτόματη δοκιμή | Αυτοματοποιημένες δοκιμές |
---|---|
Όταν μια δοκιμαστική επιφάνεια εκτελείται χειροκίνητα χωρίς παρέμβαση ενός εργαλείου ονομάζεται χειροκίνητη δοκιμή. | Όταν μια δοκιμαστική επιφάνεια εκτελείται με τη βοήθεια ενός εργαλείου χωρίς πολύ χειροκίνητη παρέμβαση ονομάζεται αυτοματοποιημένη δοκιμή. |
Περιλαμβάνονται επαναλαμβανόμενες χειροκίνητες προσπάθειες. | Μπορεί να αποφευχθούν επαναλαμβανόμενες χειροκίνητες προσπάθειες. |
Οι ανθρώπινες προσπάθειες στις χειροκίνητες δοκιμές θα μπορούσαν να είναι εσφαλμένες και χρονοβόρες. | Οι δοκιμές αυτοματισμού είναι γρηγορότεροι και χωρίς σφάλματα σε σύγκριση με τις μη αυτόματες προσπάθειες. |
Οι απαιτούμενοι πόροι δοκιμών είναι περισσότερο για τη μη αυτόματη εκτέλεση κάθε δοκιμαστικής βάσης, προσθέτοντας την επένδυση στους πόρους. | Απαιτούνται λιγότεροι δοκιμαστές για την εκτέλεση αυτοματοποιημένων δοκιμών χρησιμοποιώντας τα καθορισμένα αυτοματοποιημένα εργαλεία, επομένως υπάρχει λιγότερη επένδυση στη δοκιμή πόρων αυξάνοντας έτσι την κερδοφορία. |
Η μη αυτόματη δοκιμή πρέπει να περιορίζεται σε μια μικρή κάλυψη δοκιμών λαμβάνοντας υπόψη τους περιορισμούς χρονοδιαγράμματος. Ως εκ τούτου, υπάρχει κίνδυνος παράλειψης πολλών σεναρίων δοκιμών, οδηγώντας έτσι σε κίνδυνο διαρροής ελαττωμάτων. | Πολλά διαφορετικά σενάρια δοκιμών μπορούν να αυτοματοποιηθούν και μπορούν να εκτελεστούν πολλές φορές ακόμη και υπό κρίση χρόνου και πόρων, οδηγώντας έτσι σε καλύτερη κάλυψη δοκιμών και καλύτερη ποιότητα του παραδοτέου. |
Πλαίσιο δοκιμής μονάδας
Μπορεί να έχουμε την επόμενη ερώτηση σχετικά με το πώς μοιάζει μια τυπική θήκη μονάδας αυτοματισμού και το πλαίσιο που ακολουθεί. Οι προγραμματιστές χρησιμοποιούν το Πλαίσιο δοκιμής μονάδας για τη δημιουργία αυτοματοποιημένων περιπτώσεων δοκιμής μονάδας.
- Προκειμένου να επαληθευτεί εάν ο κώδικας λειτουργεί λογικά όπως αναμένεται, δημιουργείται ένα τεστ με ένα συγκεκριμένο σημείο ελέγχου ή κριτήριο επαλήθευσης.
- Όταν εκτελείται η δοκιμαστική εξέδρα, είτε τα κριτήρια / η συνθήκη περνούν είτε αποτυγχάνουν.
- Δημιουργείται ένα αρχείο καταγραφής σύμφωνα με τη ροή εργασίας της εξέδρας.
- Το πλαίσιο θα αναφέρει ένα συνοπτικό αποτέλεσμα για τις επιτυχημένες περιπτώσεις δοκιμών και τις αποτυχημένες.
- Ανάλογα με τη σοβαρότητα της αστοχίας, το κουτάκι ενδέχεται να μην προχωρήσει περαιτέρω και μπορεί να σταματήσει την επόμενη εκτέλεση.
- Θα μπορούσαν να υπάρξουν ορισμένες χαμηλές σοβαρές αποτυχίες που αναφέρονται στο αρχείο καταγραφής, ωστόσο δεν δείχνει σκληρή στάση, αλλά συνεχίζεται χωρίς να μπλοκάρει τα περαιτέρω βήματα δοκιμής.
Τι είναι το JUnit;
Το JUnit είναι ένα πλαίσιο ανοιχτού κώδικα που χρησιμοποιείται για τη συγγραφή και εκτέλεση δοκιμών μονάδας σε γλώσσα προγραμματισμού Java. Είναι ένα από τα πιο γνωστά πλαίσια δοκιμών μονάδων.
Η παρακάτω εικόνα δείχνει τα διάφορα γνωστά εργαλεία δοκιμών μονάδων αυτοματισμού.
Παρατίθενται παρακάτω τα χαρακτηριστικά με τα οποία είναι συσκευασμένο το JUnit:
- Υπάρχει μια τεράστια λίστα σχολιασμών για αναγνώριση, εκτέλεση και υποστήριξη πολλών λειτουργιών για τις μεθόδους δοκιμής.
- Υπάρχουν ισχυρισμοί για την επαλήθευση των αναμενόμενων αποτελεσμάτων.
- Παρέχει Test Runner για την εκτέλεση των δοκιμών.
- Το JUnit παρέχει ένα βασικό ενσωματωμένο πρότυπο, ώστε να μπορείτε να γράφετε μικρές, απλές περιπτώσεις δοκιμών σε χρόνο μηδέν.
- Οι δοκιμές JUnit σας βοηθούν να γράψετε ανεξάρτητες ενότητες, βελτιώνοντας έτσι την κάλυψη του τεστ και την ποιότητα της εφαρμογής.
- Δεν επιτρέπει μόνο την εύκολη δημιουργία και εκτέλεση δοκιμών, αλλά επίσης παρουσιάζει στον προγραμματιστή μια καθαρή και σαφή ρητή αναφορά που εξαλείφει την ανάγκη του προγραμματιστή να πραγματοποιήσει αναζήτηση μέσω της διαδρομής των αναφορών και των αποτελεσμάτων των δοκιμών.
- Μέχρι να εκτελεστεί ομαλά η εκτέλεση της δοκιμής, μπορείτε να χαλαρώσετε παρακολουθώντας τη γραμμή προόδου δοκιμής πράσινου χρώματος που εμφανίζεται ενώ η εκτέλεση είναι σε εξέλιξη, ενώ σας ειδοποιεί με «κόκκινο» μόλις η δοκιμή αποτύχει σε ένα σημείο ελέγχου επαλήθευσης.
- Μπορείτε να δημιουργήσετε δοκιμαστικές σουίτες για να συνδυάσετε μια ακολουθία ή ένα σχετικό σύνολο δοκιμαστικών περιπτώσεων.
Παραδείγματα δοκιμής JUnit
Παρακάτω παρατίθενται τα δύο παραδείγματα ενός πολύ βασικού προγράμματος Hello World για να κατανοήσετε πώς φαίνεται μια δοκιμαστική τάξη JUnit ή πόσο διαφορετική φαίνεται σε σύγκριση με ένα συνηθισμένο αρχείο κλάσης Java.
Παράδειγμα # 1:
Ακολουθεί μια δοκιμαστική αίθουσα JUnit HelloWorldJUnit.java που επιβεβαιώνει ότι η συμβολοσειρά 'Hello world' ταιριάζει με τη συμβολοσειρά 'hello world' που αποτυγχάνει στην εκτέλεση, καθώς ο αγώνας είναι πεζός. Ως εκ τούτου, οι δύο χορδές δεν ταιριάζουν και το τεστ αποτυγχάνει .
Ο κωδικός για το HelloWorldJUnit.java
package demo.tests; import static org.junit.Assert.*; import org.junit.Test; public class HelloWorldJUnit { @Test public void test() { assertEquals('Hello world','hello world'); } }
Παράδειγμα # 2:
Εδώ, θα δούμε πώς ένα συνηθισμένο Ιάβα αρχείο τάξης αλληλεπιδρά με JUnit τεστ. Δημιουργούμε ένα Ιάβα αρχείο τάξης Γεια σου World_Java.java με έναν κατασκευαστή που μας επιτρέπει να περάσουμε μια τιμή συμβολοσειράς και μια μέθοδο getText () για τη λήψη της τιμής συμβολοσειράς.
JUnit Τάξη δοκιμής Γεια σου WorldJUnit.java δημιουργείται έτσι ώστε να δημιουργείται το αντικείμενο κλάσης για το HelloWorld_Java και η πραγματική τιμή συμβολοσειράς μεταφέρεται στο αντικείμενο. Το assertEquals () από το JUnit επαληθεύει εάν ταιριάζουν με τις αναμενόμενες και τις πραγματικές τιμές συμβολοσειράς.
Ο κωδικός για το HelloWorld_Java.java
package demo.tests; import static org.junit.Assert.*; import org.junit.Test; public class HelloWorldJUnit { @Test public void test() { assertEquals('Hello world','hello world'); } }
Ο κωδικός για το HelloWorldJUnit.java
package demo.tests; public class HelloWorldJUnit{ private String s; public HelloWorld_Java(String s) { @Test public void test() { HelloWorld_Java hw=new HelloWorld_Java('Hello World'); assertEquals(hw.getText(),'Hello World'); } }
Το προκύπτον μοιάζει παρακάτω όπου βλέπουμε τον αγώνα δύο χορδών. Ως εκ τούτου, το τεστ JUnit είναι πέρασε.
ο κύριος στόχος της δοκιμής αποδοχής είναι
συμπέρασμα
Όταν πρόκειται για μια γρήγορη επισκόπηση του τι είναι το JUnit και τι κάνει, JUnit είναι ένα όμορφα κατασκευασμένο πλαίσιο που σας επιτρέπει να δημιουργείτε και να εκτελείτε δοκιμές μονάδας με αυτοματοποιημένο τρόπο.
Είναι ένα εργαλείο ανοιχτού κώδικα, αλλά τόσο χωρίς προβλήματα. Είτε πρόκειται για τη δημιουργία δοκιμαστικών περιπτώσεων είτε για την εκτέλεση μιας δοκιμαστικής θήκης ή για αναφορά μετά την εκτέλεση ή τη συντήρηση των δοκιμών, το JUnit είναι κομψό από κάθε άποψη. Ναι, μπορεί επίσης να αποτύχει κομψά. και θα δούμε πώς θα συμβεί στο επερχόμενο σεμινάριό μας καθώς προχωράμε.
Σχετικά με τον Συγγραφέα: Αυτό το σεμινάριο έχει γραφτεί απόΣόμπαΔ. Εργάζεται ως επικεφαλής έργου και διαθέτει 9+ χρόνια εμπειρίας σε χειροκίνητο, αυτοματισμό και δοκιμή API.
Ας συνεχίσουμε να φωτίζουμε βαθύτερα σε κάθε πτυχή του JUNIT εδώ.
Συνιστώμενη ανάγνωση
- Εκμάθηση Java Reflection με παραδείγματα
- Το Java String περιέχει () Μέθοδος Εκμάθησης με Παραδείγματα
- Jagged Array In Java - Εκμάθηση με παραδείγματα
- Εκμάθηση έκλειψης σε βάθος για αρχάριους
- Εκμάθηση Java SWING: Container, Components and Event Handling
- Ternary Operator In Java - Εκμάθηση με παραδείγματα
- 20+ MongoDB Tutorial για αρχάριους: Δωρεάν μαθήματα MongoDB
- Tutorial Spock: Δοκιμές με Spock και Groovy