사용자 이름 검증
웹사이트의 회원가입 양식을 만들고 있으며, 현재는 사용자 이름 검증을 구현하고 있어요. 이 메서드는 불리언 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)
}
}