找回密码
 立即注册
查看: 134|回复: 0

JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战之JUnit单元测试AI生成

[复制链接]

73

主题

3

精华

77

金币

技术维护QQ:515138

积分
165
发表于 2025-11-9 21:23:46 | 显示全部楼层 |阅读模式
JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战之JUnit单元测试AI生成单元测试含覆盖率
1.jpg 2.jpg
AI生成代码如下:
  1. package com.jinhei;
  2. import org.junit.jupiter.api.*;
  3. import org.junit.jupiter.params.ParameterizedTest;
  4. import org.junit.jupiter.params.provider.ValueSource;
  5. import static org.junit.jupiter.api.Assertions.assertEquals;
  6. import static org.junit.jupiter.api.Assertions.assertThrows;
  7. @DisplayName("测试-学生业务操作")
  8. public class UserServiceTest {
  9.     private UserService userService;
  10.     @BeforeEach
  11.     public void setUp() {
  12.         userService = new UserService();
  13.     }
  14.     @Test
  15.     @DisplayName("正常输入18位有效身份证号,第17位为奇数,应返回'男'")
  16.     public void testGetGender_OddGenderDigit_ReturnsMale() {
  17.         String idCard = "110002200505091218"; // 第17位是1(奇数)
  18.         String result = userService.getGender(idCard);
  19.         assertEquals("男", result, "性别判断错误");
  20.     }
  21.     @Test
  22.     @DisplayName("正常输入18位有效身份证号,第17位为偶数,应返回'女'")
  23.     public void testGetGender_EvenGenderDigit_ReturnsFemale() {
  24.         String idCard = "110002200505091228"; // 第17位是2(偶数)
  25.         String result = userService.getGender(idCard);
  26.         assertEquals("女", result, "性别判断错误");
  27.     }
  28.     @Test
  29.     @DisplayName("传入null参数,应抛出IllegalArgumentException")
  30.     public void testGetGender_NullInput_ThrowsException() {
  31.         assertThrows(IllegalArgumentException.class, () -> {
  32.             userService.getGender(null);
  33.         }, "未检测到非法参数异常");
  34.     }
  35.     @Test
  36.     @DisplayName("传入空字符串,应抛出IllegalArgumentException")
  37.     public void testGetGender_EmptyInput_ThrowsException() {
  38.         assertThrows(IllegalArgumentException.class, () -> {
  39.             userService.getGender("");
  40.         }, "未检测到非法参数异常");
  41.     }
  42.     @Test
  43.     @DisplayName("传入长度不足18位的身份证号,应抛出IllegalArgumentException")
  44.     public void testGetGender_TooShortInput_ThrowsException() {
  45.         assertThrows(IllegalArgumentException.class, () -> {
  46.             userService.getGender("12345678901234567"); // 17位
  47.         }, "未检测到非法参数异常");
  48.     }
  49.     @Test
  50.     @DisplayName("传入长度超过18位的身份证号,应抛出IllegalArgumentException")
  51.     public void testGetGender_TooLongInput_ThrowsException() {
  52.         assertThrows(IllegalArgumentException.class, () -> {
  53.             userService.getGender("1234567890123456789"); // 19位
  54.         }, "未检测到非法参数异常");
  55.     }
  56.     @ParameterizedTest
  57.     @ValueSource(strings = {
  58.             "110002200505091218", // 奇数
  59.             "110002200001011234", // 奇数
  60.             "11000219901231123X"  // 奇数
  61.     })
  62.     @DisplayName("多个合法身份证号,第17位为奇数时,应返回'男'")
  63.     public void testGetGender_MultipleOddInputs_ReturnsMale(String idCard) {
  64.         assertEquals("男", userService.getGender(idCard), "性别判断错误: " + idCard);
  65.     }
  66.     @ParameterizedTest
  67.     @ValueSource(strings = {
  68.             "110002200505091228", // 偶数
  69.             "110002200001011244", // 偶数
  70.             "11000219901231122X"  // 偶数
  71.     })
  72.     @DisplayName("多个合法身份证号,第17位为偶数时,应返回'女'")
  73.     public void testGetGender_MultipleEvenInputs_ReturnsFemale(String idCard) {
  74.         assertEquals("女", userService.getGender(idCard), "性别判断错误: " + idCard);
  75.     }
  76. }
复制代码
运行查看覆盖率结果如下:

3.jpg
查看自定义覆盖率对应类或者包:
4.jpg 5.jpg
网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2025-12-1 07:02

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表