package com.pxw;
import com.alibaba.fastjson.JSON;
import com.pxw.control.CourseController;
import com.pxw.control.RoomController;
import com.pxw.pojo.Classes;
import com.pxw.pojo.Course;
import com.pxw.pojo.Room;
import lombok.extern.slf4j.Slf4j;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import java.util.Arrays;
@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
@Slf4j
public class RoomControllerTest {
@Autowired
private RoomController roomController;
private MockMvc mockMvc;
@Before
public void setup() {
mockMvc = MockMvcBuilders.standaloneSetup(roomController).build();
}
@Test
public void postTest() throws Exception {
Room room = new Room();
String strJson = JSON.toJSONString(room);
MvcResult mvcResult = mockMvc.perform(
MockMvcRequestBuilders.post("/room/selectByCondition")
.param("currentPage","1")
.param("pageSize","10")
.accept(MediaType.parseMediaType("application/json;charset=UTF-8"))
.contentType(MediaType.APPLICATION_JSON)
.content(strJson)
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
log.info("调用返回的结果:{}", mvcResult.getResponse().getContentAsString());
}
@Test
public void postTest1() throws Exception {
Room room = new Room();
room.setRoomName("阶梯教室1");
room.setCapacity(101);
String strJson = JSON.toJSONString(room);
MvcResult mvcResult = mockMvc.perform(
MockMvcRequestBuilders.post("/room/add")
.accept(MediaType.parseMediaType("application/json;charset=UTF-8"))
.contentType(MediaType.APPLICATION_JSON)
.content(strJson)
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
log.info("调用返回的结果:{}", mvcResult.getResponse().getContentAsString());
}
@Test
public void postTest2() throws Exception {
String strJson = JSON.toJSONString(Arrays.asList(14));
MvcResult mvcResult = mockMvc.perform(
MockMvcRequestBuilders.post("/room/deleteByIds")
.accept(MediaType.parseMediaType("application/json;charset=UTF-8"))
.contentType(MediaType.APPLICATION_JSON)
.content(strJson)
.param("flag","false")
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
log.info("调用返回的结果:{}", mvcResult.getResponse().getContentAsString());
}
@Test
public void postTest3() throws Exception {
Room room = new Room();
room.setId(15);
room.setRoomName("阶梯教室1");
room.setCapacity(102);
String strJson = JSON.toJSONString(room);
MvcResult mvcResult = mockMvc.perform(
MockMvcRequestBuilders.post("/room/update")
.accept(MediaType.parseMediaType("application/json;charset=UTF-8"))
.contentType(MediaType.APPLICATION_JSON)
.content(strJson)
.param("flag","false")
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
log.info("调用返回的结果:{}", mvcResult.getResponse().getContentAsString());
}
}
package com.pxw;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.pxw.control.TaskController;
import com.pxw.pojo.Cclasses;
import com.pxw.pojo.Task;
import com.pxw.pojo.Teacher;
import com.pxw.service.TaskService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@WebMvcTest(TaskController.class)
public class TaskControllerTest {
@Autowired
private MockMvc mockMvc;
@MockBean
private TaskService taskService;
@Autowired
private ObjectMapper objectMapper;
@BeforeEach
public void setUp() {
// 可以在此处添加初始化代码
}
@Test
public void testSelectAll() throws Exception {
// 模拟服务层返回数据
String mockResult = "[{\"id\":1,\"name\":\"任务1\"}]";
Mockito.when(taskService.selectAll(1, 10)).thenReturn(mockResult);
// 执行请求
mockMvc.perform(MockMvcRequestBuilders.get("/task/selectAll")
.param("currentPage", "1")
.param("pageSize", "10"))
.andDo(print())
.andExpect(status().isOk())
.andExpect(MockMvcResultMatchers.content().string(mockResult));
}
@Test
public void testSelectByCondition() throws Exception {
// 创建查询条件对象
Task condition = new Task();
condition.setStartWeek(1);
condition.setEndWeek(16);
// 嵌套对象初始化
Cclasses classes = new Cclasses();
classes.setId(2);
condition.setCclasses(classes);
// 模拟服务层返回
String mockResult = "[{\"id\":1,\"startWeek\":1,\"endWeek\":16}]";
Mockito.when(taskService.selectByCondition(condition, 1, 10)).thenReturn(mockResult);
// 执行请求
mockMvc.perform(MockMvcRequestBuilders.post("/task/selectByCondition")
.param("currentPage", "1")
.param("pageSize", "10")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(condition)))
.andDo(print())
.andExpect(status().isOk())
.andExpect(MockMvcResultMatchers.content().string(mockResult));
}
@Test
public void testDeleteByIds() throws Exception {
// 模拟服务层调用
Mockito.doNothing().when(taskService).deleteByIds(new int[]{1, 2});
// 执行请求
mockMvc.perform(MockMvcRequestBuilders.post("/task/deleteByIds")
.contentType(MediaType.APPLICATION_JSON)
.content("[1,2]"))
.andDo(print())
.andExpect(status().isOk())
.andExpect(MockMvcResultMatchers.content().string("success"));
}
@Test
public void testAdd() throws Exception {
// 创建完整的 Task 对象
Task task = new Task();
task.setStartWeek(1);
task.setEndWeek(16);
task.setWeekNode(3);
// 设置嵌套对象
Cclasses classes = new Cclasses();
classes.setId(2);
task.setCclasses(classes);
Teacher teacher = new Teacher();
teacher.setId(1);
task.setTeacher(teacher);
// 模拟服务层行为
Mockito.when(taskService.add( Mockito.any(Task.class))).thenReturn("success");
// 执行请求
mockMvc.perform(MockMvcRequestBuilders.post("/task/add")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(task)))
.andDo(print())
.andExpect(status().isOk())
.andExpect(MockMvcResultMatchers.content().string("success"));
}
@Test
public void testUpdate() throws Exception {
// 创建完整的 Task 对象(包含 ID)
Task task = new Task();
task.setId(1); // 更新必须带 ID
task.setStartWeek(2);
task.setEndWeek(15);
task.setWeekNode(4);
// 设置嵌套对象
Cclasses classes = new Cclasses();
classes.setId(2);
task.setCclasses(classes);
Teacher teacher = new Teacher();
teacher.setId(1);
task.setTeacher(teacher);
// 模拟服务层行为
Mockito.when(taskService.update( Mockito.any(Task.class))).thenReturn("success");
// 执行请求
mockMvc.perform(MockMvcRequestBuilders.post("/task/update")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(task)))
.andDo(print())
.andExpect(status().isOk())
.andExpect(MockMvcResultMatchers.content().string("success"));
}
}
package com.pxw;
import com.alibaba.fastjson.JSON;
import com.pxw.control.TeacherController;
import com.pxw.pojo.Teacher;
import lombok.extern.slf4j.Slf4j;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import java.util.Arrays;
@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
@Slf4j
public class TeacherControllerTest {
@Autowired
private TeacherController teacherController;
private MockMvc mockMvc;
@Before
public void setup() {
mockMvc = MockMvcBuilders.standaloneSetup(teacherController).build();
}
@Test
public void testSelectByCondition() throws Exception {
Teacher teacher = new Teacher();
String strJson = JSON.toJSONString(teacher);
MvcResult mvcResult = mockMvc.perform(
MockMvcRequestBuilders.post("/teacher/selectByCondition")
.param("currentPage", "1")
.param("pageSize", "10")
.accept(MediaType.parseMediaType("application/json;charset=UTF-8"))
.contentType(MediaType.APPLICATION_JSON)
.content(strJson)
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
log.info("调用返回的结果:{}", mvcResult.getResponse().getContentAsString());
}
@Test
public void testAddTeacher() throws Exception {
Teacher teacher = new Teacher();
teacher.setId(1002);
teacher.setTeacherName("测试教师");
teacher.setPassword("test123");
// 设置其他必要的教师属性
String strJson = JSON.toJSONString(teacher);
MvcResult mvcResult = mockMvc.perform(
MockMvcRequestBuilders.post("/teacher/add")
.accept(MediaType.parseMediaType("application/json;charset=UTF-8"))
.contentType(MediaType.APPLICATION_JSON)
.content(strJson)
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
log.info("调用返回的结果:{}", mvcResult.getResponse().getContentAsString());
}
@Test
public void testDeleteTeachers() throws Exception {
String strJson = JSON.toJSONString(Arrays.asList(1001, 1002));
MvcResult mvcResult = mockMvc.perform(
MockMvcRequestBuilders.post("/teacher/deleteByIds")
.accept(MediaType.parseMediaType("application/json;charset=UTF-8"))
.contentType(MediaType.APPLICATION_JSON)
.content(strJson)
.param("flag", "false")
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
log.info("调用返回的结果:{}", mvcResult.getResponse().getContentAsString());
}
@Test
public void testUpdateTeacher() throws Exception {
Teacher teacher = new Teacher();
teacher.setId(1002);
teacher.setTeacherName("测试教师");
teacher.setPassword("updated123");
// 设置其他需要更新的属性
String strJson = JSON.toJSONString(teacher);
MvcResult mvcResult = mockMvc.perform(
MockMvcRequestBuilders.post("/teacher/update")
.accept(MediaType.parseMediaType("application/json;charset=UTF-8"))
.contentType(MediaType.APPLICATION_JSON)
.content(strJson)
.param("flag", "false")
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
log.info("调用返回的结果:{}", mvcResult.getResponse().getContentAsString());
}
}