Walidacja nazwy użytkownika
Tworzysz formularz rejestracyjny dla swojej strony internetowej i aktualnie pracujesz nad walidacją nazwy użytkownika. To metoda zwracająca wartość logiczną true/false, ale ma wiele rozgałęzień – chcesz się upewnić, że wszystkie można osiągnąć i że działają zgodnie z oczekiwaniami.
Aby w pełni zweryfikować tę metodę, musisz napisać kilka testów – po jednym dla każdego rodzaju scenariusza. Na szczęście nie jest to zbyt skomplikowane.
Niezbędne pakiety JUnit zostały już za ciebie zaimportowane.
To ćwiczenie jest częścią kursu
Wprowadzenie do testowania w Javie
Instrukcje do ćwiczenia
- Wprowadź nazwę użytkownika, która jest zbyt krótka (mniej niż 3 znaki) i nie przejdzie walidacji w teście sprawdzającym długość nazwy użytkownika.
- Przekaż zmienną
usernamedo metody.isValidUsername()i zapisz wynik. - Sprawdź za pomocą asercji, że przypadek z wartością
nullnie przechodzi walidacji nazwy użytkownika.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)
}
}