開始使用免費開始

使用者名稱驗證

你正在為網站撰寫註冊表單,現在要處理使用者名稱的驗證。這是一個回傳布林值 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)
    }
}
編輯並執行程式碼