Unit Tests und Code Cleanup
Viktor Gsteiger - 12.05.2019
Viktor Gsteiger - 12.05.2019
Die ist nun schon der Zweite Eintrag zu den Unit Tests, doch diese waren für mich in den letzten Wochen so existenziell für die Arbeit am Projekt, dass sie einen zweiten Eintrag verdient haben. Wie Unit Tests funktionieren und wie wir Mockito einsetzen um Abstrakte Klassen zu "mocken" kann man im letzten Eintrag zu den Unit Tests nachlesen. Doch dieses Mal will ich mehr auf die Resultate der Unit Tests eingehen und besprechen, wie diese unseren Code im positiven beeinflusst haben.
Die Unit Tests haben einen direkten Einfluss auf unseren Code, da sie mich gezwungen haben, noch einmal den gesamten code durchzugehen und vor allem im Net packet noch einmal alle Packete mit der Lupe durchzusehen. Durch die ganze Arbeit im Net Packet sind noch einige Code-cleanups zustande gekommen. Zu den Resultaten jedoch später mehr. Ich habe mir zum Ziel genommen, im Net package über 50% line coverage zu haben und 100% Klassen-coverage. Dies habe ich nach einer Woche intensiven Unit testing hingekriegt und habe damit das Gefühl, dass die Net Klassen gut getestet sind. Ein nächstes Mal würde ich mit den Unit Tests früher, bzw schon während dem erarbeiten der Klassen schreiben, dadurch spart man sich später viel einlese Arbeit und es macht das ganze viel einfacher.
Durch die Unit Tests konnte ich zahlreiche validierungen verbessern und dadurch grössere Fehler später vermeiden. In vielen Packeten wurde nicht geprüft, ob ein Packet null ist oder nicht. Weiter waren einige Validierungsmethoden sehr ineffizient, da sie nicht schon beim gröbsten Fehler abbrachen sondern erst später, wobei nicht die ganze Validierung hätte durchgeführt werden soll. Auch konnte ich noch einige unnötige System out prints mit loggern ersetzen.
Abschliessend konnte ich einige Nullpointer und Exceptions zusätzlich abfangen und dadurch unseren Code weniger anfällig auf Fehler machen. Alles in allem haben die Unit Tests unserem Code sicherlich nicht geschadet und unseren Code sicherer und stabiler gemacht.