Day36(6)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01
Maven
第32集讲安装
Maven文件导入方式
先把对应文件夹拖到资源管理器
然后再让idea识别出这个是maven,记得通过pom.xml打开
依赖配置
Maven Repository: Search/Browse/Explore
排除依赖
命令行传参调用mvn时,要先配置MAVEN_HOME及其path,且同时要使得jdk匹配
测试
Junit
先导入,在pom.xml中
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.9.1</version>
<scope>test</scope>
</dependency>
</dependencies>
package com.itheima;
import org.junit.jupiter.api.Test;
import java.time.LocalDate;
/**
* 测试类
*/
public class UserServiceTest {
@Test
public void testGetAge(){
UserService userService = new UserService();
Integer age = userService.getAge("100000200010011011");
System.out.println(age);
}
}
断言机制(maven版)
package com.itheima;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.time.LocalDate;
/**
* 测试类
*/
public class UserServiceTest {
@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 testGetGenderwithAssert(){
UserService userService = new UserService();
String gender = userService.getGender("100000200010011011");
Assertions.assertEquals("男", gender,"男女颠倒");
System.out.println(gender);
}
@Test
public void testGetGenderwithAssert2(){
UserService userService = new UserService();
//断言
Assertions.assertThrows(IllegalArgumentException.class, ()->{
userService.getGender("null");
});
}
}
注解
package com.itheima;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import java.time.LocalDate;
/**
* 测试类
*/
@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 testGetGenderwithAssert(){
// UserService userService = new UserService();
// String gender = userService.getGender("100000200010011011");
// Assertions.assertEquals("男", gender,"男女颠倒");
// System.out.println(gender);
// }
//
// @Test
// public void testGetGenderwithAssert2(){
// UserService userService = new UserService();
// //断言
// Assertions.assertThrows(IllegalArgumentException.class, ()->{
// userService.getGender("null");
// });
// }
/**
* 参数化测试
*/
@DisplayName("测试用户性别")
@ParameterizedTest
@ValueSource(strings = {"100000200010011011","100000200010011013","100000200010011011"})
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.*;
@DisplayName("用户信息测试类")
public class UserService2Test {
private UserService userService;
@BeforeEach
public void beforeEach() {
userService = new UserService();
}
/**
* 测试获取性别
*/
@Test
@DisplayName("获取性别-null")
public void testGetGender1() {
Assertions.assertThrows(IllegalArgumentException.class, () -> {
userService.getGender(null);
});
}
/**
* 测试获取性别
*/
@Test
@DisplayName("获取性别-空串")
public void testGetGender2() {
Assertions.assertThrows(IllegalArgumentException.class, () -> {
userService.getGender("");
});
}
/**
* 测试获取性别
*/
@Test
@DisplayName("获取性别-长度不足")
public void testGetGender3() {
Assertions.assertThrows(IllegalArgumentException.class, () -> {
userService.getGender("123");
});
}
/**
* 测试获取性别
*/
@Test
@DisplayName("获取性别-长度超出")
public void testGetGender4() {
Assertions.assertThrows(IllegalArgumentException.class, () -> {
userService.getGender("100000200010011011123");
});
}
/**
* 测试获取性别-正常
*/
@Test
@DisplayName("获取性别-正常男性身份证")
public void testGetGender5() {
String gender = userService.getGender("100000200010011011");
Assertions.assertEquals("男", gender);
}
@Test
@DisplayName("获取性别-正常女性身份证")
public void testGetGender6() {
String gender = userService.getGender("100000200010011021");
Assertions.assertEquals("女", gender);
}
/**
* 测试获取年龄
*/
@Test
@DisplayName("获取年龄-正常")
public void testGetAge1() {
Integer age = userService.getAge("100000200010011011");
Assertions.assertEquals(25, age);
}
/**
* 测试获取年龄
*/
@Test
@DisplayName("获取年龄-null值")
public void testGetAge2() {
Assertions.assertThrows(IllegalArgumentException.class, () -> {
userService.getAge(null);
});
}
/**
* 测试获取年龄
*/
@Test
@DisplayName("获取年龄-年龄超长")
public void testGetAge3() {
Assertions.assertThrows(IllegalArgumentException.class, () -> {
userService.getAge("100000200010011011123");
});
}
/**
* 测试获取年龄
*/
@Test
@DisplayName("获取年龄-年龄长度不足")
public void testGetAge4() {
Assertions.assertThrows(IllegalArgumentException.class, () -> {
userService.getAge("10000020001001101");
});
}
}
package com.itheima;
//import org.junit.jupiter.api.Test;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello Maven~");
}
// @Test
// //如果强行在 src/main 中使用 @Test,需手动为 src/main 引入测试依赖(将 <scope>test</scope> 移除),但这会导致主代码包中包含测试依赖,不符合 Maven 规范,因此不推荐这样做。
// public void test1(){
// System.out.println("test1");
// }
}
跳过该测试周期
C:\Users\Lenovo.m2\repository\org\springframework\spring-context\6.1.4
直接找到maven的本地仓库,cmd调用命令行,
C:\Users\Lenovo.m2\repository>del /s *.lastUpdated
仓库里面有一个del.bat格式的文件,直接双击运行脚本就可以删除
后端
Spring
package com.itheima;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController//表示当前类是一个请求处理类
public class HelloController {
@RequestMapping("/hello")//标识请求路径
public String hello(String name){
System.out.println("name:"+name);
return "Hello"+name+"~";
}
}
aliyun里面会默认给你一个demo包,调用前得先删掉这个包
https://docs.spring.io/spring-boot/docs/3.1.3/reference/htmlsingle/#using.build-systems.starters
HTTP协议
package com.itheima;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class RequestController {
@RequestMapping("/request")
public String request(HttpServletRequest request){
//1.获取请求方式
String method = request.getMethod();//GET还是POST
System.out.println("请求方式:"+method);
//2.获取请求url地址
String url = request.getRequestURL().toString();
System.out.println("完整的URL地址:"+url);
String uri = request.getRequestURI();
System.out.println("完整的URI地址:"+uri);
//3.获取请求协议
String protocol = request.getProtocol();
System.out.println("请求协议:"+protocol);
//4.获取请求参数name
String name = request.getParameter("name");
String age = request.getParameter("age");
System.out.println(name);
System.out.println(age);
//5.获取请求头-Accept
String accept = request.getHeader("Accept");
System.out.println("Accept:"+accept);
return "OK";
}
}

浙公网安备 33010602011771号