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