Benutzernamen validieren
Du entwickelst das Anmeldeformular für deine Website und arbeitest gerade an der Validierung des Benutzernamens. Es handelt sich um eine boolesche true/false-Methode, allerdings gibt es viele Verzweigungen. Du willst sicherstellen, dass alle erreichbar sind und sich wie erwartet verhalten.
Um diese Methode vollständig zu überprüfen, musst du mehrere Tests schreiben, jeweils einen pro Szenario. Zum Glück ist das nicht allzu kompliziert.
Die erforderlichen JUnit-Pakete wurden bereits für dich importiert.
Diese Übung ist Teil des Kurses
Einführung in das Testen in Java
Anleitung zur Übung
- Gib einen Benutzernamen ein, der zu kurz ist (weniger als 3 Zeichen), sodass die Validierung im Test zur Prüfung der Benutzernamenlänge fehlschlägt.
- Übergib den
usernamean die Methode.isValidUsername()und speichere das Ergebnis. - Stelle durch eine Assertion sicher, dass der
null-Fall bei der Benutzernamenvalidierung fehlschlägt.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
public class Main {
public static void main(String[] args) {
launchTestsAndPrint(UsernameValidatorTest.class);
}
}
class UsernameValidator {
public static boolean isValidUsername(String username) {
return username != null && !username.isEmpty() && !username.contains(" ") && username.length() >= 3;
}
}
class UsernameValidatorTest {
@Test
void isValidUsername_returnsTrue_whenValidUsername() {
String username = "john_doe";
boolean actual = UsernameValidator.isValidUsername(username);
assertTrue(actual);
}
@Test
void isValidUsername_returnsFalse_whenSpaces() {
String username = "john doe";
boolean actual = UsernameValidator.isValidUsername(username);
assertFalse(actual);
}
@Test
void isValidUsername_returnsFalse_whenShortUsername() {
// Enter a username that is too short
String username = "____";
boolean actual = UsernameValidator.isValidUsername(username);
assertFalse(actual);
}
@Test
void isValidUsername_returnsFalse_whenNull() {
String username = null;
// Pass the username to isValidUsername
boolean actual = UsernameValidator.____(____);
// Verify the username is invalid
____(actual)
}
}