12
Μεθοδολογίες Προγραμματισμού ΙΙ Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος Λογισμικού Έλεγχος Λογισμικού - ECLIPSE - ECLIPSE JUNIT – TDD JUNIT – TDD TFD + Refactoring TFD + Refactoring Παναγιώτης Σφέτσος, PhD http://aetos.it.teithe.gr/~sfetsos/ [email protected]

Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος Λογισμικού - ECLIPSE JUNIT – TDD TFD + Refactoring

Embed Size (px)

DESCRIPTION

Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος Λογισμικού - ECLIPSE JUNIT – TDD TFD + Refactoring. Παναγιώτης Σφέτσος , PhD http://aetos.it.teithe.gr/~sfetsos/ [email protected]. Απλό Παράδειγμα στο Eclipse - 1. Εισαγωγή των κλάσεων της junit Η κλάση Ελέγχου Ο δομητής της κλάσης - PowerPoint PPT Presentation

Citation preview

Page 1: Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος  Λογισμικού  - ECLIPSE JUNIT – TDD TFD + Refactoring

Μεθοδολογίες Προγραμματισμού ΙΙΜεθοδολογίες Προγραμματισμού ΙΙ

Έλεγχος ΛογισμικούΈλεγχος Λογισμικού - ECLIPSE - ECLIPSE

JUNIT – TDDJUNIT – TDDTFD + RefactoringTFD + Refactoring

Παναγιώτης Σφέτσος, PhDhttp://aetos.it.teithe.gr/~sfetsos/

[email protected]

Page 2: Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος  Λογισμικού  - ECLIPSE JUNIT – TDD TFD + Refactoring

Απλό ΠαράδειγμαΑπλό Παράδειγμα στο στο 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.

Page 3: Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος  Λογισμικού  - ECLIPSE JUNIT – TDD TFD + Refactoring

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

Page 4: Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος  Λογισμικού  - ECLIPSE JUNIT – TDD TFD + Refactoring

4Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

Run as: Junit Test……Run as: Junit Test……Run as: Junit Test……Run as: Junit Test……

Απλό ΠαράδειγμαΑπλό Παράδειγμα στο στο Eclipse - 3Eclipse - 3

Page 5: Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος  Λογισμικού  - ECLIPSE JUNIT – TDD TFD + Refactoring

ΠαράδειγμαΠαράδειγμα – 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)} }

Page 6: Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος  Λογισμικού  - ECLIPSE JUNIT – TDD TFD + Refactoring

ΠαράδειγμαΠαράδειγμα – BoxVolume (2/3) – BoxVolume (2/3)

6Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

Page 7: Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος  Λογισμικού  - ECLIPSE JUNIT – TDD TFD + Refactoring

ΠαράδειγμαΠαράδειγμα – BoxVolume ( – BoxVolume (33/3)/3)

7Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

Διορθώνουμε, σώζουμε και ξανα-τρέχουμε το Διορθώνουμε, σώζουμε και ξανα-τρέχουμε το test…test…Διορθώνουμε, σώζουμε και ξανα-τρέχουμε το Διορθώνουμε, σώζουμε και ξανα-τρέχουμε το test…test…

Page 8: Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος  Λογισμικού  - ECLIPSE JUNIT – TDD TFD + Refactoring

ΠαράδειγμαΠαράδειγμα – 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); }}

Page 9: Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος  Λογισμικού  - ECLIPSE JUNIT – TDD TFD + Refactoring

ΠαράδειγμαΠαράδειγμα – Calculator (2/2) – Calculator (2/2)

9Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

Page 10: Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος  Λογισμικού  - ECLIPSE JUNIT – TDD TFD + Refactoring

ΠαράδειγμαΠαράδειγμα – 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;

} }

Page 11: Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος  Λογισμικού  - ECLIPSE JUNIT – TDD TFD + Refactoring

11Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

Βλέπουμε ότι κατά το “Refactoring” κάναμε λάθος στο test – BoxTest. Διορθώνουμε,

σώζουμε και ξανα – τρέχουμε.

Βλέπουμε ότι κατά το “Refactoring” κάναμε λάθος στο test – BoxTest. Διορθώνουμε,

σώζουμε και ξανα – τρέχουμε.

ΠαράδειγμαΠαράδειγμα – Test suit (2/ – Test suit (2/33))

Page 12: Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος  Λογισμικού  - ECLIPSE JUNIT – TDD TFD + Refactoring

12Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

Λαμβάνουμε την πράσινη μπάρα…Λαμβάνουμε την πράσινη μπάρα…

ΠαράδειγμαΠαράδειγμα – Test suit ( – Test suit (33//33))