橙子
发布于 2025-12-03 / 16 阅读
0
0

1,2

1、内容:

下面是某在线交流平台系统的详细设计说明书的部分内容,其中对该系统管理员功能的需求如下:

A、帖子管理:管理员查看帖子列表,逻辑审核、删除帖子。

B、标签管理:管理员查看标签列表,添加标签,修改标签信息。

C、用户管理:管理员查看用户列表,删除、恢复用户。

下面是对系统管理模块、查询统计模块、基础数据管理模块的描述,请按照要求补充完整对应的说明。

用户管理模块

● 功能:( 1 )实现用户的登录和身份验证功能。

● 性能:为用户提供登录界面。

● 输入项目:( 2 )用户名和密码。

● 输出项目:用户名密码匹配,输出“登录成功!”;用户名密码匹配失败,输出“密码错误!”。 

帖子管理模块

(1) 查看帖子管理:

● 功能: ( 3 )管理员查看帖子列表,以便进行审核或删除操作。 

● 性能:为用户提供查看帖子页面

● 输出项目: 帖子信息。

2、根据题目描述,编写Java代码完成测试。

答案

测试用例说明:

序号

输入账号

预期结果 (boolean)

测试描述

1

"" (空字符串)

false

验证空字符串输入的处理。

2

"user1" (长度5)

false

验证长度小于6的无效输入。

3

"longaccount1" (长度12)

false

验证长度等于12的无效边界值。

4

"1username" (长度9)

false

验证以数字开头的非法格式。

5

"_username" (长度9)

false

验证以下划线开头的非法格式。

6

"user-name" (长度9)

false

验证包含非法字符('-')的输入。

7

"normal" (长度6)

true

验证最小合法长度(6)的有效输入。

8

"verylongone" (长度11)

true

验证最大合法长度(11)的有效输入。

9

"user_001" (长度8)

true

验证字母、数字、下划线的合法组合。

10

"AdminUser" (长度9)

true

验证包含大写字母的合法输入。

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

/**
 * AccountCheck 类的单元测试用例。
 * 每个测试方法都直接对应测试用例表格中的一行。
 */
class AccountCheckTest {

    private AccountCheck accountCheck;

    @BeforeEach
    void setUp() {
        // 在每个测试方法运行前,都创建一个新的AccountCheck实例
        // 这样可以确保测试之间的独立性
        accountCheck = new AccountCheck();
    }

    @Test
    @DisplayName("1. 验证空字符串 -> false")
    void check_whenAccountIsEmpty_shouldReturnFalse() {
        assertFalse(accountCheck.check(""), "测试用例1失败:空字符串应返回 false");
    }

    @Test
    @DisplayName("2. 验证长度小于6 -> false")
    void check_whenAccountIsTooShort_shouldReturnFalse() {
        assertFalse(accountCheck.check("user1"), "测试用例2失败:长度为5的账号应返回 false");
    }

    @Test
    @DisplayName("3. 验证长度等于12 -> false")
    void check_whenAccountLengthIs12_shouldReturnFalse() {
        assertFalse(accountCheck.check("longaccount1"), "测试用例3失败:长度为12的账号应返回 false");
    }

    @Test
    @DisplayName("4. 验证以数字开头 -> false")
    void check_whenAccountStartsWithNumber_shouldReturnFalse() {
        assertFalse(accountCheck.check("1username"), "测试用例4失败:以数字开头的账号应返回 false");
    }

    @Test
    @DisplayName("5. 验证以下划线开头 -> false")
    void check_whenAccountStartsWithUnderscore_shouldReturnFalse() {
        assertFalse(accountCheck.check("_username"), "测试用例5失败:以下划线开头的账号应返回 false");
    }

    @Test
    @DisplayName("6. 验证包含非法字符('-') -> false")
    void check_whenAccountContainsInvalidChar_shouldReturnFalse() {
        assertFalse(accountCheck.check("user-name"), "测试用例6失败:包含'-'的账号应返回 false");
    }

    @Test
    @DisplayName("7. 验证最小合法长度(6) -> true")
    void check_whenAccountHasMinValidLength_shouldReturnTrue() {
        assertTrue(accountCheck.check("normal"), "测试用例7失败:长度为6的合法账号应返回 true");
    }

    @Test
    @DisplayName("8. 验证最大合法长度(11) -> true")
    void check_whenAccountHasMaxValidLength_shouldReturnTrue() {
        assertTrue(accountCheck.check("verylongone"), "测试用例8失败:长度为11的合法账号应返回 true");
    }

    @Test
    @DisplayName("9. 验证字母/数字/下划线的合法组合 -> true")
    void check_whenAccountIsValidCombination_shouldReturnTrue() {
        assertTrue(accountCheck.check("user_001"), "测试用例9失败:'user_001'应返回 true");
    }

    @Test
    @DisplayName("10. 验证包含大写字母的合法输入 -> true")
    void check_whenAccountContainsUppercase_shouldReturnTrue() {
        assertTrue(accountCheck.check("AdminUser"), "测试用例10失败:包含大写字母的合法账号应返回 true");
    }
}

如何运行测试

  1. 环境准备:确保你的Java项目中引入了 JUnit 5 库。如果使用 Maven,可以在 pom.xml 中添加以下依赖:

  2. 文件结构:将 AccountCheck.java 放在 src/main/java 目录下,将 AccountCheckTest.java 放在 src/test/java 目录下。

  3. 运行:在你的IDE(如 IntelliJ IDEA 或 Eclipse)中,直接右键点击 AccountCheckTest.java 文件或类名,选择 "Run 'AccountCheckTest'" 即可执行所有测试用例。IDE会清晰地展示哪些用例通过,哪些失败。

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.10.0</version> <!-- 使用较新版本 -->
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.10.0</version>
    <scope>test</scope>
</dependency>


评论