Test-driven development JUnit-Test Lars Varain
Inhalt Test-driven Development (TDD) Junit4 Beispiel
Inhalt Test-driven Development (TTD) Warum TDD? Zyklus Ausnahmebehandlung Junit4 Beispiel
Inhalt Test-driven Development (TDD) Junit4 Junit & eclipse Die Methoden Beispiel
Inhalt Test-driven Development (TTD) Junit4 Beispiel
Warum Zyklus Ausnahmen Warum TDD
Warum Zyklus Ausnahmen Warum TDD TDD ist qualitätsbewusste Programmierung
Warum Zyklus Ausnahmen Warum TDD TDD ist qualitätsbewusste Programmierung Tests machen Fortschritte greifbar
Warum Zyklus Ausnahmen Warum TDD TDD ist qualitätsbewusste Programmierung Tests machen Fortschritte greifbar Tests sichern den Erhalt der vorhandenen Funktionalität bei Erweiterung und Überarbeitung
Warum Zyklus Ausnahmen Warum TDD TDD ist qualitätsbewusste Programmierung Tests machen Fortschritte greifbar Tests sichern den Erhalt der vorhandenen Funktionalität bei Erweiterung und Überarbeitung Refactoring verlängert die produktive Lebensdauer einer Software
Warum Zyklus Ausnahmen Warum TDD TDD ist qualitätsbewusste Programmierung Tests machen Fortschritte greifbar Tests sichern den Erhalt der vorhandenen Funktionalität bei Erweiterung und Überarbeitung Refactoring verlängert die produktive Lebensdauer einer Software Code lässt sich im Nachhinein schlecht testen
Warum Zyklus Ausnahmen Zyklus 1. Direktive Motivieren Sie jede Änderung des Programmverhaltens durch einen automatisierten Test
Warum Zyklus Ausnahmen Zyklus 1. Direktive Motivieren Sie jede Änderung des Programmverhaltens durch einen automatisierten Test 2. Direktive Bringen Sie Ihren Code immer in die einfachste Form
Warum Zyklus Ausnahmen Zyklus Junit: failure Junit: OK Junit: OK
Warum Zyklus Ausnahmen Ausnahmen
Warum Zyklus Ausnahmen Ausnahmen 1. Ausnahme Test läuft auf Anhieb
Warum Zyklus Ausnahmen Ausnahmen 1. Ausnahme 2. Ausnahme Test läuft auf Anhieb Test schägt weiterhin fehl
Warum Zyklus Ausnahmen Ausnahmen 1. Ausnahme 2. Ausnahme 3. Ausnahme Test läuft auf Anhieb Test schägt weiterhin fehl??? Test lässt sich nur unter erheblichem Aufwand erfüllen, wenn überhaupt
Tests sind Unit Tests
Tests sind Unit Tests Junit ist ein JAVA Framework zum schreiben und ausführen von automatisierten Tests
Tests sind Unit Tests Junit ist ein JAVA Framework zum schreiben und ausführen von automatisierten Tests Im Kern geschrieben von Kent Beck und Erich Gamma
Tests sind Unit Tests Junit ist ein JAVA Framework zum schreiben und ausführen von automatisierten Tests Im Kern geschrieben von Kent Beck und Erich Gamma Tests werden direkt in JAVA implementiert
Tests sind Unit Tests Junit ist ein JAVA Framework zum schreiben und ausführen von automatisierten Tests Im Kern geschrieben von Kent Beck und Erich Gamma Tests werden direkt in JAVA implementiert Junit4 arbeitet mit Annotationen (@Test, @Before, @After, @BeforClass, @AfterClass, @RunWith, @Suite, @Ignore)
Tests sind Unit Tests Junit ist ein JAVA Framework zum schreiben und ausführen von automatisierten Tests Im Kern geschrieben von Kent Beck und Erich Gamma Tests werden direkt in JAVA implementiert Junit4 arbeitet mit Annotationen Eclipse hat ein eigenes JUnit tool
In Version 3.8.1 noch aufrufbar mit integrierter swinggui... junit.swingui.testrunner.run(testclass.class);... Ab Version 4.x ohne.
In Version 3.8.1 noch aufrufbar mit integrierter swinggui... junit.swingui.testrunner.run(testclass.class);... Ab Version 4.x ohne. Eclipse hat eine eigene gui Test Runner für Junit4
Jede Testfallmethode hat ein eigenes Testfallobjekt setup() testmethode1() teardown() Test1: Test1: setup() testmethode2() teardown()
Jede Testfallmethode hat ein eigenes Testfallobjekt setup() testmethode1() teardown() Test1: Test1: setup() testmethode2() teardown() Extrahieren eines gemeinsames Test-Fixture
Jede Testfallmethode hat ein eigenes Testfallobjekt setup() testmethode1() teardown() Test1: Test1: setup() testmethode2() teardown() Extrahieren eines gemeinsames Test-Fixture Gruppierung der Testfälle um eine gemeinsame Fixture
Test-Fixture
Test-Fixture Objekte der Testumgebung zu Instanzvariablen machen
Test-Fixture Objekte der Testumgebung zu Instanzvariablen machen Initialisieren dieser mit setup()
Test-Fixture Objekte der Testumgebung zu Instanzvariablen machen Initialisieren dieser mit setup() Resourcen wieder freigeben mit teardown()
Ziel: nach jedem erfolgreichen Kompiliervorgang alle gesammelten Unit- Tests automatisiert ausführen
Ziel: nach jedem erfolgreichen Kompiliervorgang alle gesammelten Unit- Tests automatisiert ausführen fasst alle Test-Klassen zusammen
Ziel: nach jedem erfolgreichen Kompiliervorgang alle gesammelten Unit- Tests automatisiert ausführen fasst alle Test-Klassen zusammen Kann auch noch weitere s integrieren
-Methoden
-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können
-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual)
-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual) assertequals(string expected, String actual)
-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual) assertequals(string expected, String actual) assertequals(int expected, int actual)
-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual) assertequals(string expected, String actual) assertequals(int expected, int actual) assertequals(double expected, double actual, double delta)
-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual) assertequals(string expected, String actual) assertequals(int expected, int actual) assertequals(double expected, double actual, double delta) assert(not)null(object object)
-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual) assertequals(string expected, String actual) assertequals(int expected, int actual) assertequals(double expected, double actual, double delta) assert(not)null(object object) assert(not)same(object expected, Object actual)
-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual) assertequals(string expected, String actual) assertequals(int expected, int actual) assertequals(double expected, double actual, double delta) assert(not)null(object object) assert(not)same(object expected, Object actual) asserttrue(false)(boolean condition)
Beispiel Videothek Film kostet 2 für 2 Tage, danach 1,50 für jeden zusätzlichen Tag Bezahlt wird mit EURO nicht mit double Zusätzliche Filmkategorie Neuer Film Neuer Film kostet 3 für 2 Tage, danach 2 für jeden zusätzlichen Tag Anzahl der Videos die ein Kunde geliehen hat soll einsehbar sein Kunden werden in einer Liste abgelegt Liste hat add(), remove(), und get() Methoden
Noch Fragen?
Danke für die Aufmerksamkeit