시작하기무료로 시작하기

사용자 이름 검증

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