排课系统单元测试代码02

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());
    }
}

 

posted @ 2025-06-14 13:57  艾鑫4646  阅读(6)  评论(0)    收藏  举报