Beim schreiben von Scripts ist es nützlich Tests zu schreiben um bei Änderungen nicht alles nochmals manuell testen zu müssen. Außerdem stellt man sicher, dass immer alle Bestandteile getestet werden wenn man eine Änderung vornimmt.
Ziele
- Verstehe warum man Tests schreiben möchte
- Neue Features können bestehende Features brechen
- Besser schlafen, weil man weiß, dass die Software gut funktioniert und getestet ist
- Features können nicht versehentlich entfernt oder verändert werden
- Es ist möglich, nur einen Teil des Scripts/der Applikation zu verändern ohne das Ganze zu kennen
- Verstehe die unterschiedlichen Typen von tests (unit tests, E2E tests, integration tests)
- Was sind die Vor- und Nachteile von unit tests?
- Was sind die Vor- und Nachteile von integration tests?
- Wann bringt man was zum Einsatz?
- Lerne Tests mit RSpec zu schreiben
- Verstehe welche Nachteile entstehen wenn man zu viel testet
- Tests schreiben kostet Zeit
- Wenn man schon eine hohe Testabdeckung hat, sind weitere Tests nicht mehr so nützlich (teilw. Überschneidung von Tests)
- Lerne wie du RSpec einsetzt um deine Scripts zu testen
Inhalte
- Writing basic tests with Rspec Show archive.org snapshot
- Rspec Dokumentation Show archive.org snapshot
Aufgaben
Schreibe die folgenden Tests für dein Programm aus dem Kapitel Scripting mit JSON APIs [4 PT].
- Teste ob dein Programm valide Daten aus dem output der JSON API herauslesen kann.
- Teste ob die ausgegebenen Tables dem erwarteten Format entsprechen.
- Teste ob die Anfrage von mehr als 24 Stunden historischer Wetterdaten automatisch auf tagesgenaue Daten umgestellt wird (und umgekehrt). Außerdem soll geprüft werden ob bei >24h geprüft wird, ob die Stunden genau auf volle Tage matchen.
- Teste alle Wetterumstände die dazu führen, dass das Modellflugzeug nicht fliegen sollte.
- Teste ob das Programm erfolgreich auswertet ob es regnet, damit der Gärtner weiß, ob er die Pflanzen gießen muss. Du musst auch testen, ob dein code zur Verifizierung des erstellten Tickets funktioniert.
Posted by Claus-Theodor Riegg to DevOps Curriculum (2022-06-21 09:23)