Dieses Projekt enthält eine kleine Beispielanwendung, die durch automatisierte Modultests erweitert werden soll. Verwendet werden dabei JUnit5 und Mockito.
Umsetzt werden die Arbeiten am Projekt im master
-Branch. Vorlagen und Lösungen werden in Feature-Branches (feature/*
) bereitgestellt. Es ist möglich, per git checkout
auf den Branch zu wechseln und Musterlösungen anzuschauen, oder per git merge
eine Musterlösung direkt in den Master zu kopieren.
- Öffne die Klasse
GearTransmission
. Ermittle Testfälle für den Konstruktor und die MethodeshiftUp()
. - Implementiere diese Testfälle.
(Musterlösung siehe Branch feature/test-simple
)
- Öffne die Klasse
Car
. Diese hat Abhängigkeiten zuGearTransmission
,Engine
,Clutch
undGasTank
. Beachte den Konstruktor, mit dem diese Abhängigkeiten von außen übergeben werden können. Dieser ist hilfreich für bessere Testbarkeit. (Design for Test) - Leite für die Methode
fillUp(double)
Testfälle her und implementiere diese.
(Musterlösung siehe Branch feature/test-mockito
)
- Prüfe, ob Deine Entwicklungsumgebung Tests mit Messung der Code Coverage ausführen kann. (Eclipse: Coverage As > JUnit Test)
- Erweitere den Maven-Build um Messung der Code Coverage während des automatisierten Builds.
(Musterlösung siehe Branch feature/code-coverage
)
Erweitere die Testklasse für GearTransmission
um einen parametrisierten Test. So soll nicht nur für einen maximalen Gang, sondern für mehrere testweise durchgeschalten werden.
(Musterlösung siehe Branch feature/test-data-driven
)
Ein Beispiel für einen Test nach JUnit4-Vorgaben findest Du im Branch feature/junit4-sample
.