开始使用免费开始使用

用户名校验

您正在为自己的网站编写注册表单,目前在处理用户名校验。这是一个返回布尔值 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)
    }
}
编辑并运行代码