一、Maven:
1、Maven坐标(引入项目中需要的依赖)的基本格式为:
<dependency> <groupId>commons-io组织名</groupId> <artifactId>commons-io项目名</artifactId> <version>2.16.1版本号</version> </dependency>
这是Maven Project下的pom文件,包含排除依赖、配置依赖、junit依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Maven_Project</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--排除依赖-->
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.16.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<!--配置依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.2.6</version>
</dependency>
<!-- junit依赖 -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.9.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
2、生命周期:
包含以下三套生命周期:
而主要用到以下五个生命周期阶段:
体现在idea当中就是这五个:
二、使用JUnit进行单元测试:
1、在main文件下的java下创建一个包,写以下主代码:
package com.itheima;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
public class UserService {
/**
* 给定一个身份证号,计算出该用户的年龄
* @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? "男" : "女";
}
}
2、然后我们就可以开始测试了:
在test目录下同样创建一个测试类(必须以Test结尾命名类)写测试代码:
这里测试了getAge方法和getGender方法。
package com.itheima;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class UserServiceTest {
@Test
public void testGetAge(){
UserService userService = new UserService();
int age = userService.getAge("10010020050808001X");
System.out.println(age);
}
@Test
public void testGetGender(){
UserService userService = new UserService();
String gender = userService.getGender("14022520050808001X");
System.out.println(gender);
//断言
Assertions.assertEquals("男",gender);
}
}
可以在左边的运行符号里查看覆盖率:
覆盖率如下:
JUnit提供了一些辅助方法,称为断言:
以下是一些常用的断言方法: