Στην ανάπτυξη λογισμικού, η δοκιμή μονάδων είναι μια διαδικασία που απομονώνει και δοκιμάζει ειδικά τμήματα μιας εφαρμογής. Οι μονάδες είναι ο επίσημος όρος για αυτές τις ειδικές ενότητες. Στην εφαρμογή Java, μια μονάδα είναι μια μέθοδος.
Υπάρχουν πολλά πλαίσια δοκιμών μονάδων διαθέσιμα για προγραμματιστές Java. Μεταξύ των κορυφαίων πλαισίων είναι το JUnit 5.
Γιατί είναι σημαντική η δοκιμή μονάδας;
Εάν έχετε γράψει ποτέ δηλώσεις εντοπισμού σφαλμάτων για εκτύπωση και έλεγχο της τιμής μιας μεταβλητής, συγχαρητήρια. έχετε δημιουργήσει μια δοκιμή μονάδας. Αυτό το τμήμα κώδικα που απορρίπτεται ήταν απαραίτητο επειδή δεν λαμβάνατε την επιθυμητή έξοδο.
Τι θα γινόταν όμως αν λαμβάνατε την επιθυμητή έξοδο και ο κωδικός εξακολουθούσε να περιέχει κάπου ένα σφάλμα; Μπορεί να αναπτύξετε την εφαρμογή και αυτό το σφάλμα θα μπορούσε να οδηγήσει σε παραβίαση ασφαλείας αργότερα. Για εφαρμογές που αποθηκεύουν δεδομένα χρηστών, το ποντάρισμα είναι υψηλό όταν υπάρχει παραβίαση ασφάλειας.
Η δοκιμή μονάδας στοχεύει κάθε ενότητα της εφαρμογής σας—είτε προκαλεί σφάλμα αυτήν τη στιγμή είτε όχι. Επομένως, η δοκιμή μονάδας παίζει σημαντικό ρόλο
καλή ασφάλεια λογισμικού.Τι είναι το JUnit 5;
Το JUnit 5 είναι κάτι περισσότερο από ένα άλλο πλαίσιο δοκιμών μονάδας. Έχει πολλά υπο-έργα, δηλαδή την πλατφόρμα JUnit, την JUnit Jupiter και την JUnit Vintage. Κάθε ένα από αυτά τα τρία στοιχεία έχει μοναδικές ενότητες που συνεργάζονται για να βελτιώσουν τη δοκιμή για προγραμματιστές Java.
Η πλατφόρμα JUnit 5 είναι διαθέσιμη στις τελευταίες εκδόσεις των κορυφαίων πλατφορμών ανάπτυξης Java Integrated (IDE). Τα Java IDE που υποστηρίζουν το JUnit 5 είναι:
- IntelliJ IDEA
- Εκλειψη
- NetBeans
- Κωδικός Visual Studio
Δημιουργία δοκιμών μονάδας με το JUnit 5
Αυτό το δείγμα προγράμματος χρησιμοποιεί το JUnit 5 για τη δημιουργία πολλών δοκιμών μονάδων σε μια απλή εφαρμογή αριθμομηχανής.
Η τάξη αριθμομηχανών
πακέτο εφαρμογή?
δημόσιοτάξηΑριθμομηχανή{
δημόσιοστατικόςενθΠροσθήκη(ενθ num1, ενθ num2){
ΕΠΙΣΤΡΟΦΗ num1 + num2;
}δημόσιοστατικόςενθαφαιρώ(ενθ num1, ενθ num2){
ΕΠΙΣΤΡΟΦΗ num1 - num2;
}δημόσιοστατικόςενθπολλαπλασιάζω(ενθ num1, ενθ num2){
ΕΠΙΣΤΡΟΦΗ num1 * num2;
}
δημόσιοστατικόςενθδιαιρέστε(ενθ num1, ενθ num2){
ΕΠΙΣΤΡΟΦΗ num1 / num2;
}
}
ο Κλάση Java παραπάνω εκτελεί τέσσερις στατικές πράξεις: πρόσθεση, αφαίρεση, πολλαπλασιασμό και διαίρεση. Κάθε μέθοδος λαμβάνει δύο ακέραια ορίσματα και επιστρέφει μια ενιαία ακέραια τιμή.
Τάξη δοκιμής JUnit 5
πακέτο δοκιμή;
εισαγωγήστατικός org.junit. Διεκδικώ.*;
εισαγωγή εφαρμογή. Αριθμομηχανή;
εισαγωγήorg.junit.Δοκιμή;δημόσιοτάξηCalculatorTest{
@Δοκιμή
δημόσιοκενόςδοκιμήΠροσθήκη(){
διεκδικώ Ίσο(7, Αριθμομηχανή.Προσθήκη(3, 4));
}@Δοκιμή
δημόσιοκενόςtest Αφαίρεση(){
διεκδικώ Ίσο(6, Αριθμομηχανή.αφαιρώ(9, 3));
}@Δοκιμή
δημόσιοκενόςtestΠολλαπλασιασμός(){
διεκδικώ Ίσο(10, Αριθμομηχανή.πολλαπλασιάζω(5, 2));
}
@Δοκιμή
δημόσιοκενόςtestDivide(){
διεκδικώ Ίσο(2, Αριθμομηχανή.διαιρέστε(4, 2));
}
}
CalculatorTest εισάγει δύο σημαντικές έννοιες: το @Δοκιμή σχολιασμός και το assertEquals() μέθοδος. Ο σχολιασμός@Test υποδηλώνει ότι η μέθοδος ακριβώς από κάτω είναι μια μέθοδος δοκιμής. Στην παραπάνω κατηγορία δοκιμής υπάρχουν τέσσερις μέθοδοι δοκιμής, μία για καθεμία από τις λειτουργίες της αριθμομηχανής.
Όλες οι μέθοδοι δοκιμής χρησιμοποιούν τη μέθοδο assertEquals(). Αυτή η μέθοδος παίρνει δύο υποχρεωτικά ορίσματα και ένα προαιρετικό τρίτο όρισμα. Το πρώτο όρισμα που δίνεται στη μέθοδο assertEquals() παραπάνω είναι το αναμενόμενο αποτέλεσμα και το δεύτερο όρισμα είναι η μέθοδος (ή μονάδα) που θέλετε να αξιολογήσετε.
Η κλάση CalculatorTest δεν έχει κύρια μέθοδο, αλλά οι σχολιασμοί JUnit @Test καθιστούν όλες τις μεθόδους δοκιμής εκτελέσιμες. Η εκτέλεση της κλάσης CalculatorTest στο eclipse παράγει την ακόλουθη διεπαφή:
Όπως μπορείτε να δείτε, κάθε δοκιμή είναι επιτυχής. Υπάρχουν τέσσερις δοκιμές, και όλες έγιναν χωρίς σφάλματα ή αποτυχίες.
Οι δοκιμές μαθησιακής μονάδας μπορούν να διευρύνουν τις ευκαιρίες σταδιοδρομίας σας
Ως προγραμματιστής, το να γνωρίζεις πώς να δοκιμάζεις λογισμικό είναι μια συμφέρουσα ικανότητα. Σίγουρα θα βελτιώσει τη ροή εργασίας σας και, ελπίζουμε, θα κάνει τον κώδικά σας πιο εύκολο στη χρήση από άλλους. Ωστόσο, υπάρχει ένας κλάδος ανάπτυξης λογισμικού που εστιάζει αποκλειστικά στη δοκιμή. Αυτοί οι μηχανικοί είναι γνωστοί ως δοκιμαστές λογισμικού.