120 likes | 203 Vues
Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος Λογισμικού - ECLIPSE JUNIT – TDD TFD + Refactoring. Παναγιώτης Σφέτσος , PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr. Απλό Παράδειγμα στο Eclipse - 1. Εισαγωγή των κλάσεων της junit Η κλάση Ελέγχου Ο δομητής της κλάσης
E N D
Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος Λογισμικού - ECLIPSE JUNIT – TDD TFD + Refactoring Παναγιώτης Σφέτσος, PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr
Απλό Παράδειγμαστο Eclipse - 1 Εισαγωγή των κλάσεων της junit Η κλάση Ελέγχου Ο δομητής της κλάσης Η μέθοδος του Test. 1 2 3 4 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ import junit.framework.*; public class ATest extends TestCase { public ATest(String name) { super(name); } public void testATest() { int answer = 2; assertEquals((1+1), answer); }}
Απλό Παράδειγμαστο Eclipse - 2 Στο Eclipse είναι ενσωματωμένες οι δύο εκδόσεις του Junit, δηλ. οι εκδόσεις 3 και 4. Έτσι δεν χρειάζεται εγκατάσταση του Junit. Εμείς επιλέγουμε την έκδοση που θέλουμε. Τα βήματα: Δημιουργούμε ένα νέο Java Project. Προσθέτουμε σε αυτό από την file - > new - >ένα Junit Test Case Δηλώνουμε το όνομα της κλάσης ελέγχου (ATest) και επιλέγουμε την έκδοση του Junit που θέλουμε Δημιουργείται η κλάση ATest, με τιςεντολές: import junit.framework.*; public class ATest extends TestCase{} //συμπληρώνουμε το σώμα του Test Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Απλό Παράδειγμαστο Eclipse - 3 Run as: Junit Test…… Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Παράδειγμα – BoxVolume (1/3) Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ import junit.framework.*; public class BoxTest extends TestCase { class Box { double width; double height; double depth; Box(double x, double y, double z) { width = x; height = y; depth = z; } double volume() {return width * height * depth;}} public void testAdd() { Box mybox1 = new Box(10, 20, 15); Box mybox2 = new Box(3, 6, 9); double vol; vol = mybox1.volume(); assertTrue(vol == 3000.00); vol = mybox2.volume(); assertTrue(vol == 167.00); // λάθος στον υπολογισμό (το σωστό 162.00) }}
Παράδειγμα – BoxVolume (2/3) Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Παράδειγμα – BoxVolume (3/3) Διορθώνουμε, σώζουμε και ξανα-τρέχουμε το test… Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Παράδειγμα – Calculator (1/2) Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ import junit.framework.TestCase; class Calculator { public double add(double x, double y) { return (x+y);} } public class TestCalculator extends TestCase { public void testAdd() { Calculator calc = new Calculator(); double result = calc.add(80,10); assertEquals(90, result,0); } }
Παράδειγμα – Calculator (2/2) Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Παράδειγμα – Test suit (1/3) Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Όταν έχουμε όλα τα tests ανοικτά, τότε μπορούμε να δημιουργήσουμε αυτόματα το testsuit, επιλέγοντας από τηνfile - > new - > Other… - > Junit - > Junit Test Suit import junit.framework.Test; import junit.framework.TestSuite; public class AllTests { public static Test suite() { TestSuite suite = new TestSuite(AllTests.class.getName()); //$JUnit-BEGIN$ suite.addTestSuite(SimpleTest1.class); suite.addTestSuite(BoxTest.class); suite.addTestSuite(ATest.class); suite.addTestSuite(TestCalculator.class); //$JUnit-END$ return suite; } }
Παράδειγμα – Test suit (2/3) Βλέπουμε ότι κατά το “Refactoring” κάναμε λάθος στο test – BoxTest. Διορθώνουμε, σώζουμε και ξανα – τρέχουμε. Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Παράδειγμα – Test suit (3/3) Λαμβάνουμε την πράσινη μπάρα… Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ