In Uberspace 7 - Episode 2 haben wir das Thema Tests angerissen:
Nachdem Features definiert wurden sollte man anfangen, Tests zu schreiben und damit die Anforderungen an die Features genau definieren.
Aber wie sieht so ein Test eigentlich aus? Beispiel: Jeder User bekommt mit seinem Account eine Mailbox, die er mit seinem SSH-Kennwort abrufen kann. Ein Test dafür würde folgendermaßen aussehen:
- Einen User auf dem Server anlegen
- Ein SSH-Passwort setzen
- Eine Mail an User schicken
- Der User loggt sich per IMAP ein
- User holt Mail 1 per IMAP ab (Es kann nur eine Mail da sein, der User ist ganz frisch angelegt und das Postfach war vor der Testmail leer)
- Wir überprüfen den Inhalt der Mail auf einen bestimmten String
- Profit!
Diesen Test haben wir mit Ansible realisiert. Und jetzt mal Butter bei die Fische, so sieht das in Code aus: Die Variablen testuser und dummypassword haben wir bereits an anderer Stelle definiert, in ansible_fqdn steht der Hostname des Servers. <{{ testuser }}@{{ ansible_fqdn }}> ist also die E-Mail-Adresse des Testusers.