Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Ποιότητα Λογισμικού Ενότητα 6: Μέτρηση της κάλυψης των ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Advertisements

Ποιότητα Λογισμικού Ενότητα 1: Εισαγωγή στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Ποιότητα Λογισμικού Ενότητα 4: Παράδειγμα Ελέγχου. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Διδακτική Πληροφορικής
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 4: Συμβολοσειρές και Δομές Ελέγχου. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 9: Κληρονομικότητα. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 6: Πίνακες και Παράμετροι στην main. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 8: Κατασκευαστές. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Αντικειμενοστραφής Προγραμματισμός Ι
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 10: Αφηρημένες τάξεις. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής.
Χρονικός Προγραμματισμός Έργων (Εργαστήριο) Ενότητα 5: Αναθέσεις σε πόρους Κλεάνθης Συρακούλης, Επίκουρος Καθηγητής, Τμήμα Διοίκησης Επιχειρήσεων, T.E.I.
Τεχνολογία Ξύλου 1 Ενότητα 13: Ποιότητα και Πιστοποίηση Ξυλείας Διδάσκων: Δρ. Μιχάλης Σκαρβέλης, Αναπληρωτής Καθηγητής. Τμήμα Σχεδιασμού και Τεχνολογίας.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Εκπαιδευτικά Προγράμματα με Χρήση Η/Υ ΙΙ Θέμα «παιγνίδια» (website address) Διδάσκουσα: Καθηγήτρια Τζένη.
Τμήμα Τεχνολόγων Γεωπόνων Τίτλος Μαθήματος: ΚΑΛΛΩΠΙΣΤΙΚΑ ΔΕΝΤΡΑ ΚΑΙ ΘΑΜΝΟΙ Ενότητα 12: Οδηγίες δημιουργίας φυτολογίου Γρηγόριος Βάρρας Αν. Καθηγητής Άρτα,
Διοίκηση Ανθρωπίνων Πόρων Ενότητα 3: Προσέλκυση Ανθρώπινου Δυναμικού. Διδάσκων: Γεώργιος Ασπρίδης, Επίκουρος Καθηγητής. Τμήμα Διοίκησης Επιχειρήσεων.
Ενότητα 7 : Χρήση Πινάκων στο Ηλεκτρονικό εμπόριο (I) Ιωάννης Τσούλος
Αντικειμενοστραφής Προγραμματισμός Ι
ΟΙΚΟΝΟΜΙΚΑ ΤΟΥ ΕΛΕΓΧΟΥ ΤΗΣ ΡΥΠΑΝΣΗΣ
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
Επικοινωνιακός Προγραμματισμός Ι
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Χρονικός Προγραμματισμός Έργων (Εργαστήριο)
Χρονικός Προγραμματισμός Έργων (Εργαστήριο)
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(9)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΕνΟτητα # 9: Ms Word VI CLAUDIA BOETTCHER ΤμΗμα ΙστορΙαΣ
Διαχείριση Κινδύνου Ενότητα 7: Παρακολούθηση Κινδύνων.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Διαχείριση Κινδύνου Ενότητα 3: Σχέδιο Διαχείρισης Κινδύνου.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(3)
ΜΗΧΑΝΙΚΗ ΤΩΝ ΥΛΙΚΩΝ ΦΡΟΝΤΙΣΤΗΡΙΟ: ΔΙΚΤΥΩΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Επικοινωνιακός Προγραμματισμός Ι
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Επικοινωνιακός Προγραμματισμός Ι
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Επιχειρησιακές Επικοινωνίες
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(7)
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(4)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΕνΟτητα # 8: Ms Word V CLAUDIA BOETTCHER ΤμΗμα ΙστορΙαΣ
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(5)
ΠΑΡΟΥΣΙΑΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΠΙΘΑΝΟΤΗΤΕΣ(10)
ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Ενότητα 1: ……………….. Όνομα Επώνυμο Τμήμα __
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Προγραμματισμός κινητών συσκευών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Επικοινωνιακός Προγραμματισμός Ι
Μεταγράφημα παρουσίασης:

Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.

Άδειες χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην παρακάτω άδεια χρήσης Creative Commons (C C): Αναφορά δημιουργού (B Y), Παρόμοια Διανομή (S A), 3.0, Μη εισαγόμενο. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Τ.Ε.Ι. Θεσσαλίας» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Περιεχόμενα ενότητας 1) Βασικές έννοιες του JUnit και οι παραμετρικοί έλεγχοι 2) Παραμετρική κλάση ελέγχου Παραμετρικοί Έλεγχοι στο JUnit4

Βασικές έννοιες του JUnit Έννοια του JUnitΤι επιτυγχάνεται με αυτή Assert Επιτρέπει τον καθορισμό των συνθηκών που θέλετε να ελεγχθούν. Μία μέθοδος assert είναι σιωπηλή όταν η συνθήκη επαληθεύεται, αλλά προκαλεί εξαίρεση όταν η συνθήκη δεν επαληθεύεται (π.χ. η AssertEquals που είδαμε σε προηγούμενη ενότητα). Μέθοδος Ελέγχου Μία μέθοδος με την η οποία ορίζει έναν έλεγχο μονάδος. Για να τρέξει αυτή τη μέθοδο το JUnit κατασκευάζει ένα νέο στιγμιότυπο της κλάσης που το περιέχει και στην συνέχεια καλεί σε αυτό το στιγμιότυπο την επισημασμένη μέθοδο. Κλάση Ελέγχου (Test class) Μία κλάση ελέγχου περιέχει μεθόδους ελέγχου (δηλαδή μεθόδους με την Συνήθως για κάθε κλάση της εφαρμογής μας έχουμε και μία κλάση ελέγχου. Σουίτα (Suite) Μία σουίτα επιτρέπει την ομαδοποίηση κλάσεων ελέγχου, έτσι ώστε να εκτελούνται όλες μαζί. Κλάση Εκτέλεσης (Runner) Μία κλάση εκτέλεσης (Runner) είναι μία ειδική κλάση του JUnit που εκτελεί ελέγχους. Παραμετρικοί Έλεγχοι στο JUnit5

Τι είναι οι παραμετρικοί έλεγχοι Θα δούμε μία ειδική κλάση εκτέλεσης (Runner), που μας επιτρέπει να εκτελέσουμε την ίδια μέθοδο ελέγχου (test case), πολλές φορές και κάθε φορά με διαφορετικές παραμέτρους. Αυτό μας δίνει την δυνατότητα να εκτελέσουμε μία μέθοδο με τιμές για τις παραμέτρους της, που θεωρούμε πως είναι πιθανόν να προκαλέσουν σφάλματα (π.χ. οριακές τιμές), αλλά και με τιμές που θεωρούνται φυσιολογικές. Παραμετρικοί Έλεγχοι στο JUnit6

Η κλάση προς έλεγχο (1 από 2) package domain; public class Calculator { public double add(double num1, double num2) { return num1 + num2; } Έστω πως θέλουμε να ελέγξουμε την μέθοδο add με τρεις διαφορετικές κλήσεις: 1,1 (αναμενόμενη τιμή επιστροφής: 2). 2,1 (αναμενόμενη τιμή επιστροφής: 3). 3,1 (αναμενόμενη τιμή επιστροφής: 4). Παραμετρικοί Έλεγχοι στο JUnit7

Η κλάση προς έλεγχο (2 από 2) Αυτό μπορεί να γίνει «χειρονακτικά» με εμάς να αλλάζουμε τις τιμές σε κάθε εκτέλεση, αλλά: Δεν αυτοματοποιείται αυτός ο έλεγχος έτσι ώστε πάντα να εκτελείται για όλες τις τιμές. Στο μέλλον δεν μπορούμε να επαναλάβουμε τους ελέγχους αυτόματα, εκτός αν θυμηθούμε να εισάγουμε πάλι τις τιμές με το χέρι. Ο αυτοματισμός και η επαναληψιμότητα των ελέγχων που θέλουμε, μπορεί να επιτευχθεί με μία παραμετρική κλάση ελέγχου σε 5 βήματα, τα οποία περιγράφονται στις επόμενες διαφάνειες. Παραμετρικοί Έλεγχοι στο JUnit8

(Βήμα 1): Εισαγωγή των κατάλληλων κλάσεων package domain; import static org.junit.Assert.*; import java.util.Arrays; import java.util.Collection; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters;... Θα πρέπει να εισάγουμε κάποιες επιπλέον κλάσεις, που χρειάζονται για την εκτέλεση των παραμετρικών ελέγχων. Παραμετρικοί Έλεγχοι στο JUnit9

(Βήμα 2): Επισήμανση της κλάσης ως παραμετρική (1 από = Parameterized.class) public class CalculatorTest { private int expected;//αναμενόμενο αποτέλεσμα private int valueOne;//πρώτη παράμετρος για την add private int valueTwo;//δεύτερη παράμετρος για την add... Η κλάση θα πρέπει να ξεκινά με την = Parameterized.class). Η επισήμανση αυτή λέει στο Junit πώς θα πρέπει να χρησιμοποιηθεί η ειδική κλάση εκτέλεσης (Runner) Parameterized. Παραμετρικοί Έλεγχοι στο JUnit10

(Βήμα 2): Επισήμανση της κλάσης ως παραμετρική (2 από 2) Επίσης θα πρέπει να δηλώσουμε μεταβλητές κλάσης (δηλαδή πεδία), για την κλήση της μεθόδου ελέγχου με διαφορετικές παραμέτρους: expected: η αναμενόμενη τιμή επιστροφής από την add, valueOne: η πρώτη παράμετρος της add, valueTwo: η δεύτερη παράμετρος της add. Οι τιμές αυτές, θα πρέπει να αρχικοποιηθούν από τον κατασκευαστή της κλάσης (βλέπε επόμενες διαφάνειες). Παραμετρικοί Έλεγχοι στο JUnit11

(Βήμα 3): Δήλωση της μεθόδου getParameters (1 από public static Collection getTestParameters() { return Arrays.asList(new Integer[][] { { 2, 1, 1 }, { 3, 2, 1 }, { 4, 3, 1 } }); }... Παραμετρικοί Έλεγχοι στο JUnit12

(Βήμα 3): Δήλωση της μεθόδου getParameters (2 από 2) Η μέθοδος getParameters θα πρέπει να επιστρέφει μία συλλογή (java.util.Collection) του κατάλληλου τύπου (εδώ πίνακες ακεραίων), έτσι ώστε να μπορεί να αρχικοποιηθεί ο constructor της κλάσης ελέγχου. Στο παράδειγμά μας, δηλαδή ο κατασκευαστής (βλέπε επόμενη διαφάνεια), θα πρέπει να έχει τρεις παραμέτρους. Η παραμετρική κλάση εκτέλεσης θα εκτελέσει τις μεθόδους ελέγχου τόσες φορές, όσοι και οι πίνακες αυτής της συλλογής, ενώ κάθε φορά πριν την εκτέλεση θα δημιουργεί ένα νέο στιγμιότυπο της κλάσης ελέγχου, καλώντας τον κατασκευαστή με τις παραμέτρους που ορίζονται από κάθε πίνακα. Στο παράδειγμά μας την πρώτη φορά θα χρησιμοποιηθούν οι τιμές (2, 1, 1) για την κλήση του κατασκευαστή, την δεύτερη οι τιμές (3, 2, 1) και την τρίτη οι τιμές (4, 3, 1). Επομένως η εκτέλεση της μεθόδου ελέγχου testAdd θα γίνει τρεις φορές! Παραμετρικοί Έλεγχοι στο JUnit13

(Βήμα 4): Δήλωση του κατάλληλου κατασκευαστή public CalculatorTest(int expected, int valueOne, int valueTwo) { this.expected = expected; this.valueOne = valueOne; this.valueTwo = valueTwo; }... Ο κατασκευαστής (constructor) της παραμετρικής κλάσης ελέγχου, θα αρχικοποιήσει τα πεδία της κλάσης (this.expected, this.valueOne, και this.valueTwo) στις τιμές expected, valueOne, και valueTwo αντίστοιχα, οι οποίες θα παρέχονται από τα στοιχεία της συλλογής αντικειμένων που επιστρέφει η getParameters (βλέπε προηγούμενη διαφάνεια). Ο κατασκευαστής εκτελείται κάθε φορά πριν να κληθεί η μέθοδος ελέγχου testAdd (βλέπε επόμενη διαφάνεια). Παραμετρικοί Έλεγχοι στο JUnit14

(Βήμα 5): Δήλωση της μεθόδου ελέγχου (με χρήση των πεδίων της public void testAdd() { Calculator calculator = new Calculator(); double result = calculator.add(valueOne, valueTwo); assertEquals(expected, result, 0); }... Η μέθοδος ελέγχου testAdd, καλείται κάθε φορά μετά την κλήση του κατασκευαστή: Προσέξτε, θα κληθεί τρεις φορές γιατί η getParameters επιστρέφει μία συλλογή με τρεις πίνακες ακεραίων: 1 η κλήση: (expected, valueOne, valueTwo) = (2, 1, 1). 2 η κλήση: (expected, valueOne, valueTwo) = (3, 2, 1). 3 η κλήση: (expected, valueOne, valueTwo) = (4, 3, 1). Παραμετρικοί Έλεγχοι στο JUnit15

Αποτελέσματα εκτέλεσης του παραμετρικού ελέγχου Παρατηρείστε πως έχουμε τρεις εκτελέσεις της testAdd, παρότι εκτελέσαμε τον έλεγχο μία φορά και υπάρχει μόνο μία μέθοδος ελέγχου (δηλαδή μέθοδος με την Αυτό οφείλεται στην χρήση της κλάσης εκτέλεσης Parameterized (Parameterized Runner). Παραμετρικοί Έλεγχοι στο JUnit16

Ολοκληρωμένη η παραμετρική κλάση ελέγχου Παραμετρικοί Έλεγχοι στο JUnit17

Τέλος ενότητας Επεξεργασία: Σοφιανίδου Γεωργία