การตรวจสอบชื่อผู้ใช้
คุณกำลังเขียนฟอร์มสมัครสมาชิกสำหรับเว็บไซต์ และกำลังทำงานกับส่วนการตรวจสอบชื่อผู้ใช้อยู่ เมธอดนี้คืนค่า boolean true/false แต่มีหลาย branch จึงต้องการตรวจสอบให้แน่ใจว่าทุก branch สามารถเข้าถึงได้และทำงานได้ถูกต้องตามที่คาดไว้
เพื่อตรวจสอบเมธอดนี้อย่างครบถ้วน จำเป็นต้องเขียน test หลายชุด โดยแต่ละชุดครอบคลุม scenario ที่แตกต่างกัน ซึ่งไม่ได้ซับซ้อนมากนัก
ได้ import แพ็กเกจ JUnit ที่จำเป็นไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทดสอบใน Java เบื้องต้น
คำแนะนำการฝึกหัด
- ป้อนชื่อผู้ใช้ที่สั้นเกินไป (น้อยกว่า 3 ตัวอักษร) ซึ่งจะไม่ผ่านการตรวจสอบใน test ที่ทดสอบการตรวจสอบความยาวชื่อผู้ใช้
- ส่ง
usernameเข้าเมธอด.isValidUsername()แล้วเก็บผลลัพธ์ที่ได้ - Assert ว่ากรณีที่เป็น
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)
}
}