Валидация имени пользователя
Вы разрабатываете форму регистрации для своего сайта и сейчас работаете над валидацией имени пользователя. Это булев метод, возвращающий true или false, однако он содержит много ветвей, и вы хотите убедиться, что каждая из них достижима и работает корректно.
Чтобы полностью проверить этот метод, нужно написать несколько тестов — по одному для каждого типа сценария. К счастью, это не так сложно.
Необходимые пакеты JUnit уже импортированы.
Это упражнение является частью курса
Введение в тестирование на Java
Инструкции к упражнению
- Введите имя пользователя, которое слишком коротко (менее 3 символов) и не пройдёт валидацию в тесте, проверяющем длину имени.
- Передайте
usernameв метод.isValidUsername()и сохраните результат. - Убедитесь, что случай со значением
nullне проходит валидацию имени пользователя.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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)
}
}