Τι είναι η παραμετροποιημένη δοκιμή στο Junit;
Η παραμετροποιημένη δοκιμή είναι να εκτελείται η ίδια δοκιμή ξανά και ξανά χρησιμοποιώντας διαφορετικές τιμές. Βοηθά τον προγραμματιστή να εξοικονομήσει χρόνο στην εκτέλεση της ίδιας δοκιμής που διαφέρει μόνο στις εισόδους και στα αναμενόμενα αποτελέσματα.
Χρησιμοποιώντας παράμετρος δοκιμής, μπορεί κανείς να δημιουργήσει μια μέθοδο δοκιμής που ανακτά δεδομένα από κάποια πηγή δεδομένων.
Εξετάστε μια απλή δοκιμή για να αθροίσετε διαφορετικούς αριθμούς. Ο κωδικός μπορεί να μοιάζει με -
Η παραπάνω προσέγγιση οδηγεί σε πολλές απολύσεις.
Χρειαζόμαστε μια απλή προσέγγιση και. Χρησιμοποιώντας παραμετροποιημένη δοκιμή, μπορείτε απλώς να προσθέσετε μια μέθοδο εισαγωγής 10 εισόδων δεδομένων και η δοκιμή σας θα εκτελεστεί αυτόματα 10 φορές.
Βήματα για τη δημιουργία μιας παραμέτρου δοκιμής JUnit
Ο ακόλουθος κώδικας δείχνει ένα παράδειγμα για μια παραμετροποιημένη δοκιμή. Δοκιμάζει τη μέθοδο sum () της αριθμητικής τάξης:
Βήμα 1) Δημιουργήστε μια τάξη. Σε αυτό το παράδειγμα, θα εισαγάγουμε δύο αριθμούς χρησιμοποιώντας τη μέθοδο sum (int, int) που θα επιστρέψει το άθροισμα των δεδομένων αριθμών
Βήμα 2) Δημιουργήστε μια παραμετροποιημένη τάξη δοκιμής
Επεξήγηση κώδικα
- Γραμμή κώδικα 11: Σχολιάστε την τάξη δοκιμής σας χρησιμοποιώντας το @runWith (Parameterized.class).
- Γραμμή κώδικα 13: Δήλωση της μεταβλητής «firstNumber» ως ιδιωτική και πληκτρολογήστε ως int.
- Γραμμή κώδικα 14: Δήλωση της μεταβλητής «secondNumber» ως ιδιωτική και πληκτρολογήστε ως int.
- Γραμμή κώδικα 15: Δήλωση της μεταβλητής «expectResult» ως ιδιωτική και πληκτρολογήστε ως int.
- Γραμμή κώδικα 16: Δήλωση της μεταβλητής «airthematic» ως ιδιωτική και πληκτρολογήστε ως Airthematic.
@RunWith (class_name.class): Ο σχολιασμός @RunWith χρησιμοποιείται για τον καθορισμό του ονόματος κλάσης του δρομέα. Εάν δεν καθορίσουμε κανένα τύπο ως παράμετρο, ο χρόνος εκτέλεσης θα επιλέξει BlockJunit4ClassRunner από προεπιλογή.
Αυτή η τάξη είναι υπεύθυνη για την εκτέλεση δοκιμών με μια νέα δοκιμαστική παρουσία. Είναι υπεύθυνη για την επίκληση μεθόδων κύκλου ζωής του JUnit, όπως η εγκατάσταση (πόροι συνεργάτη) και η μείωση του χρόνου (πόροι απελευθέρωσης).
Για παραμετροποίηση πρέπει να σχολιάσετε χρησιμοποιώντας το @RunWith και να περάσετε το απαιτούμενο .class για δοκιμή
Βήμα 3) Δημιουργήστε έναν κατασκευαστή που αποθηκεύει τα δεδομένα δοκιμής. Αποθηκεύει 3 μεταβλητές
Βήμα 4) Δημιουργήστε μια στατική μέθοδο που δημιουργεί και επιστρέφει δεδομένα δοκιμής.
Γραμμή κώδικα 32,33: Δημιουργία δισδιάστατου πίνακα (παρέχοντας παράμετροι εισόδου για προσθήκη). Χρησιμοποιώντας τη μέθοδο asList μετατρέπουμε τα δεδομένα σε τύπο λίστας. Από τότε, ο τύπος επιστροφής της μεθόδου εισαγωγής είναι συλλογή.
Γραμμή κώδικα 30: Χρήση σχολιασμού @Parameters για τη δημιουργία ενός συνόλου δεδομένων εισόδου για την εκτέλεση της δοκιμής μας.
Η στατική μέθοδος που προσδιορίζεται από τον σχολιασμό @Parameters επιστρέφει μια Συλλογή όπου κάθε καταχώρηση στη Συλλογή θα είναι τα δεδομένα εισαγωγής για μία επανάληψη της δοκιμής.
Εξετάστε το στοιχείο
{1,2,3}
Εδώ
πρώτος αριθμός = 1
secondNumber = 2
ΑναμενόμενοResult = 3
Εδώ κάθε στοιχείο συστοιχίας θα μεταβιβάζεται στον κατασκευαστή, ένα κάθε φορά, καθώς η τάξη δημιουργείται πολλές φορές.
Βήμα 5) Ο πλήρης κωδικός
Επεξήγηση κώδικα:
- Γραμμή κώδικα 25: Χρησιμοποιώντας το @Before σχολιασμός για τη ρύθμιση των πόρων (Airthematic.class εδώ). Ο σχολιασμός @Before χρησιμοποιείται εδώ για εκτέλεση πριν από κάθε δοκιμαστική υπόθεση. Περιέχει την προϋπόθεση του τεστ.
- Γραμμή κώδικα 36: Χρήση σχολιασμού @Test για τη δημιουργία της δοκιμής μας.
- Γραμμή κώδικα 39: Δημιουργία δήλωσης επιβεβαίωσης για να ελέγξετε αν το άθροισμα είναι ισοδύναμο με αυτό που περιμέναμε.
Βήμα 6) Δημιουργήστε μια δοκιμαστική κλάση δρομέα για να εκτελέσετε παραμετροποιημένη δοκιμή:
Επεξήγηση κώδικα:
- Γραμμή κώδικα 8: Δήλωση της κύριας μεθόδου του τεστ κλάσης που θα εκτελέσει το τεστ JUnit.
- Γραμμή κώδικα 9: Εκτελώντας δοκιμαστικές περιπτώσεις χρησιμοποιώντας JunitCore.runclasses, θα πάρει το όνομα της κατηγορίας δοκιμής ως παράμετρος (Στο παράδειγμά μας χρησιμοποιούμε Airthematic.class).
- Γραμμή κώδικα 11: Επεξεργασία του αποτελέσματος χρησιμοποιώντας βρόχο και εκτύπωση αποτυχημένου αποτελέσματος.
- Γραμμή κώδικα 13: Εκτύπωση του επιτυχούς αποτελέσματος.
Παραγωγή:
Εδώ είναι η έξοδος που δείχνει επιτυχημένη δοκιμή χωρίς ίχνος αστοχίας όπως δίνεται παρακάτω:
Δείτε το αποτέλεσμα στην κονσόλα, η οποία δείχνει την προσθήκη δύο αριθμών: -
Περίληψη :
Η παραμετροποιημένη δοκιμή επιτρέπει στον προγραμματιστή να εκτελεί την ίδια δοκιμή ξανά και ξανά χρησιμοποιώντας διαφορετικές τιμές.
Σημαντικοί σχολιασμοί που θα χρησιμοποιηθούν κατά την παραμετροποίηση
- @RunWith
- @Παράμετροι