【Maven】单元测试练习2025/2/17

 /**
     * 给定一个身份证号, 计算出该用户的年龄
     * @param idCard 身份证号
     */
    public Integer getAge(String idCard){
        if (idCard == null || idCard.length() != 18) {
            throw new IllegalArgumentException("无效的身份证号码");
        }
        String birthday = idCard.substring(6, 14);
        LocalDate parse = LocalDate.parse(birthday, DateTimeFormatter.ofPattern("yyyyMMdd"));
        return Period.between(parse, LocalDate.now()).getYears();
    }

    /**
     * 给定一个身份证号, 计算出该用户的性别
     * @param idCard 身份证号
     */
    public String getGender(String idCard){
        if (idCard == null || idCard.length() != 18) {
            throw new IllegalArgumentException("无效的身份证号码");
        }
        return Integer.parseInt(idCard.substring(16,17)) % 2 == 1 ? "男" : "女";
    }

}

测试代码:

package com.itheima;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@DisplayName("用户测试信息类")
public class UserService2Test {
    private UserService userService;

    @BeforeEach
    public void setUp(){
        userService =new UserService();
    }

    @Test
    @DisplayName("获取性别Null值")
    public void Testgender1(){
        Assertions.assertThrows(IllegalArgumentException.class,() ->{
            userService.getGender(null);
        });
    }

    @Test
    @DisplayName("获取性别空值")
    public void Testgender2(){
        Assertions.assertThrows(IllegalArgumentException.class,() ->{
            userService.getGender("");
        });
    }

    @Test
    @DisplayName("获取性别少于18位")
    public void Testgender3(){
        Assertions.assertThrows(IllegalArgumentException.class,() ->{
            userService.getGender("110");
        });
    }

    @Test
    @DisplayName("获取性别多于18位")
    public void Testgender4(){
        Assertions.assertThrows(IllegalArgumentException.class,() ->{
            userService.getGender("1111111111111111111");
        });
    }

    @Test
    @DisplayName("正常男性身份证")
    public void Testgender5(){
        String gender = userService.getGender("100000000000000010");
        Assertions.assertEquals("男",gender);
    }

    @Test
    @DisplayName("正常女性身份证")
    public void Testgender6(){
        String gender = userService.getGender("100000000000000020");
        Assertions.assertEquals("女",gender);
    }

    @Test
    @DisplayName("获取出生日期Null值")
    public void TestAge1(){
        Assertions.assertThrows(IllegalArgumentException.class,() ->{
            userService.getAge(null);
        });
    }

    @Test
    @DisplayName("获取出生日期空值")
    public void TestAge2(){
        Assertions.assertThrows(IllegalArgumentException.class,() ->{
            userService.getAge("");
        });
    }

    @Test
    @DisplayName("获取出生日期少于18位")
    public void TestAge3(){
        Assertions.assertThrows(IllegalArgumentException.class,() ->{
            userService.getAge("110");
        });
    }

    @Test
    @DisplayName("获取出生日期多于18位")
    public void TestAge4(){
        Assertions.assertThrows(IllegalArgumentException.class,() ->{
            userService.getAge("1111111111111111111");
        });
    }

    @Test
    @DisplayName("获取出生日期-正常身份证")
    public void TestAge5(){
        Integer age = userService.getAge("100000200003020010");
        Assertions.assertEquals(24,age);
    }
}
【Maven】单元测试练习2025/2/17_第1张图片 单元覆盖率

你可能感兴趣的:(maven,maven,java)