Gebruikersnaam valideren
Je schrijft het aanmeldformulier voor je website en werkt nu aan de validatie van de gebruikersnaam. Het is een booleaanse true/false-methode, maar hij heeft veel vertakkingen en je wilt zeker weten dat ze allemaal bereikbaar zijn en zich gedragen zoals verwacht.
Om deze methode volledig te verifiëren, moet je meerdere tests schrijven, één voor elk type scenario. Gelukkig is dat niet al te ingewikkeld.
De benodigde JUnit-pakketten zijn al voor je geïmporteerd.
Deze oefening maakt deel uit van de cursus
Introductie tot testen in Java
Oefeninstructies
- Voer in de test die de lengtecontrole van de gebruikersnaam verifieert een gebruikersnaam in die te kort is (minder dan 3 tekens) en dus niet door de validatie komt.
- Geef de
usernamedoor aan de methode.isValidUsername()en sla het resultaat op. - Maak een assertion dat het
null-geval niet slaagt voor de gebruikersnaamvalidatie.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)
}
}