Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος Λογισμικού -...
DESCRIPTION
Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος Λογισμικού - ECLIPSE JUNIT – TDD TFD + Refactoring. Παναγιώτης Σφέτσος , PhD http://aetos.it.teithe.gr/~sfetsos/ [email protected]. Απλό Παράδειγμα στο Eclipse - 1. Εισαγωγή των κλάσεων της junit Η κλάση Ελέγχου Ο δομητής της κλάσης - PowerPoint PPT PresentationTRANSCRIPT
Μεθοδολογίες Προγραμματισμού ΙΙΜεθοδολογίες Προγραμματισμού ΙΙ
Έλεγχος ΛογισμικούΈλεγχος Λογισμικού - ECLIPSE - ECLIPSE
JUNIT – TDDJUNIT – TDDTFD + RefactoringTFD + Refactoring
Παναγιώτης Σφέτσος, PhDhttp://aetos.it.teithe.gr/~sfetsos/
Απλό ΠαράδειγμαΑπλό Παράδειγμα στο στο Eclipse - 1Eclipse - 1
2Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
import junit.framework.*;
public class ATest extends TestCase{ public ATest(String name) { super(name);}
public void testATest() { int answer = 2; assertEquals((1+1), answer);}}
Εισαγωγή των κλάσεων της junit
Η κλάση Ελέγχου
Ο δομητής της κλάσης
Η μέθοδος του Test.
3Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
• Στο 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 - 2Eclipse - 2
4Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Run as: Junit Test……Run as: Junit Test……Run as: Junit Test……Run as: Junit Test……
Απλό ΠαράδειγμαΑπλό Παράδειγμα στο στο Eclipse - 3Eclipse - 3
ΠαράδειγμαΠαράδειγμα – BoxVolume (1/3) – BoxVolume (1/3)
5Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
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 (2/3)
6Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
ΠαράδειγμαΠαράδειγμα – BoxVolume ( – BoxVolume (33/3)/3)
7Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Διορθώνουμε, σώζουμε και ξανα-τρέχουμε το Διορθώνουμε, σώζουμε και ξανα-τρέχουμε το test…test…Διορθώνουμε, σώζουμε και ξανα-τρέχουμε το Διορθώνουμε, σώζουμε και ξανα-τρέχουμε το test…test…
ΠαράδειγμαΠαράδειγμα – Calculator (1/2) – Calculator (1/2)
8Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
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) – Calculator (2/2)
9Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
ΠαράδειγμαΠαράδειγμα – Test suit (1/ – Test suit (1/33))
10Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Όταν έχουμε όλα τα tests ανοικτά, τότε μπορούμε να δημιουργήσουμε αυτόματατο test suit, επιλέγοντας από την 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;
} }
11Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Βλέπουμε ότι κατά το “Refactoring” κάναμε λάθος στο test – BoxTest. Διορθώνουμε,
σώζουμε και ξανα – τρέχουμε.
Βλέπουμε ότι κατά το “Refactoring” κάναμε λάθος στο test – BoxTest. Διορθώνουμε,
σώζουμε και ξανα – τρέχουμε.
ΠαράδειγμαΠαράδειγμα – Test suit (2/ – Test suit (2/33))
12Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Λαμβάνουμε την πράσινη μπάρα…Λαμβάνουμε την πράσινη μπάρα…
ΠαράδειγμαΠαράδειγμα – Test suit ( – Test suit (33//33))