เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การตรวจสอบชื่อผู้ใช้

คุณกำลังเขียนฟอร์มสมัครสมาชิกสำหรับเว็บไซต์ และกำลังทำงานกับส่วนการตรวจสอบชื่อผู้ใช้อยู่ เมธอดนี้คืนค่า 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)
    }
}
แก้ไขและรันโค้ด