Maven

发布于:2025-05-10 ⋅ 阅读:(11) ⋅ 点赞:(0)

1-阿里云镜像

    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>

2-Maven库

https://mvnrepository.com/
Maven Central Repository Search
Index of /groups/public
http://people.apache.org/repo/m2-snapshot-repository/
http://people.apache.org/repo/m2-incubating-repository/

3-JUnit

断言方法

描述

Assertions.assertEquals(Object exp, Object act, String msg)

检查两个值是否相等,不相等就报错。

Assertions.assertNotEquals(Object unexp, Object act, String msg)

检查两个值是否不相等,相等就报错。

Assertions.assertNull(Object act, String msg)

检查对象是否为null,不为null,就报错

Assertions.assertNotNull(Object act, String msg)

检查对象是否不为null,为null,就报错

Assertions.assertTrue(boolean condition, String msg)

检查条件是否为true,不为true,就报错

Assertions.assertFalse(boolean condition, String msg)

检查条件是否为false,不为false,就报错

Assertions. assertThrows(Class expType, Executable exec, String msg)

检查程序运行抛出的异常,是否符合预期。

注解

说明

备注

@Test 

测试类中的方法用它修饰才能成为测试方法,才能启动执行

单元测试

@ParameterizedTest

参数化测试的注解 (可以让单个测试运行多次,每次运行时仅参数不同)

用了该注解,就不需要@Test注解了

@ValueSource

参数化测试的参数来源,赋予测试方法参数

与参数化测试注解配合使用

@DisplayName

指定测试类、测试方法显示的名称 (默认为类名、方法名)

@BeforeEach

用来修饰一个实例方法,该方法会在每一个测试方法执行之前执行一次。

初始化资源(准备工作)

@AfterEach

用来修饰一个实例方法,该方法会在每一个测试方法执行之后执行一次。

释放资源(清理工作)

@BeforeAll

用来修饰一个静态方法,该方法会在所有测试方法之前只执行一次

初始化资源(准备工作)

@AfterAll

用来修饰一个静态方法,该方法会在所有测试方法之后只执行一次

释放资源(清理工作)

4-案例


import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;

/**
 * 测试类
 */
@DisplayName("用户信息测试类")
public class UserServiceTest {

    /*@BeforeAll //在所有的单元测试方法运行之前, 运行一次
    public static void beforeAll(){
        System.out.println("before All");
    }
    @AfterAll //在所有的单元测试方法运行之后, 运行一次
    public static void afterAll(){
        System.out.println("after All");
    }
    @BeforeEach //在每一个单元测试方法运行之前, 都会运行一次
    public void beforeEach(){
        System.out.println("before Each");
    }
    @AfterEach //在每一个单元测试方法运行之后, 都会运行一次
    public void afterEach(){
        System.out.println("after Each");
    }*/


    @Test
    public void testGetAge(){
        UserService userService = new UserService();
        Integer age = userService.getAge("100000200010011011");
        System.out.println(age);
    }

    @Test
    public void testGetGender(){
        UserService userService = new UserService();
        String gender = userService.getGender("100000200010011011");
        System.out.println(gender);
    }

    /**
     * 断言
     */
    @Test
    public void testGenderWithAssert(){
        UserService userService = new UserService();
        String gender = userService.getGender("100000200010011011");
        //断言
        //Assertions.assertEquals("男", gender);
        Assertions.assertEquals("男", gender, "性别获取错误有问题");
    }

    /**
     * 断言
     */
    @Test
    public void testGenderWithAssert2(){
        UserService userService = new UserService();
        //断言
        Assertions.assertThrows(IllegalArgumentException.class, () -> {
            userService.getGender(null);
        });
    }

    /**
     * 参数化测试
     */
    @DisplayName("测试用户性别")
    @ParameterizedTest
    @ValueSource(strings = {"100000200010011011","100000200010011031","100000200010011051"})
    public void testGetGender2(String idCard){
        UserService userService = new UserService();
        String gender = userService.getGender(idCard);
        //断言
        Assertions.assertEquals("男", gender);
    }
}
package com.itheima;

import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;

import static org.junit.jupiter.api.Assertions.*;

public class UserServiceAiTest {

    private UserService userService;
    @BeforeEach // 在每个测试方法执行前执行
    public void setUp() {
        userService = new UserService();
    }

    @Test
    public void getGender_ValidMaleIdCard_ReturnsMale() {
        String gender = userService.getGender("100000200010011011");
        assertEquals("男", gender, "性别获取错误,应为男性");
    }

    @Test
    public void getGender_ValidFemaleIdCard_ReturnsFemale() {
        String gender = userService.getGender("100000200010011022");
        assertEquals("女", gender, "性别获取错误,应为女性");
    }

    @Test
    public void getGender_NullIdCard_ThrowsException() {
        assertThrows(IllegalArgumentException.class, () -> {
            userService.getGender(null);
        }, "无效的身份证号码");
    }

    @Test
    public void getGender_InvalidLengthIdCard_ThrowsException() {
        assertThrows(IllegalArgumentException.class, () -> {
            userService.getGender("10000020001001101");
        }, "无效的身份证号码");
    }

    @ParameterizedTest
    @ValueSource(strings = {"100000200010011011", "100000200010011031", "100000200010011051"})
    public void getGender_MultipleMaleIdCards_ReturnsMale(String idCard) {
        String gender = userService.getGender(idCard);
        assertEquals("男", gender, "性别获取错误,应为男性");
    }

    @ParameterizedTest
    @ValueSource(strings = {"100000200010011022", "100000200010011042", "100000200010011062"})
    public void getGender_MultipleFemaleIdCards_ReturnsFemale(String idCard) {
        String gender = userService.getGender(idCard);
        assertEquals("女", gender, "性别获取错误,应为女性");
    }
}


网站公告

今日签到

点亮在社区的每一天
去签到