mockMVC
引入依赖
<!-- junit5 spring-test--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
编写测试类
package boot;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
@SpringBootTest
@AutoConfigureMockMvc
public class MockMvcTest {
@Autowired
MockMvc mockMvc;
//无需依赖web网络环境,无需启动应用,可直接请求controller
@Test
void testMockMVC() throws Exception {
//发起一个模拟请求
mockMvc.perform(
MockMvcRequestBuilders.get("/getUser") //发送get请求
.accept(MediaType.APPLICATION_JSON) //设置响应的文本类型
)
.andExpect(MockMvcResultMatchers.status().isOk())//断言状态码为200
.andDo(MockMvcResultHandlers.print());
}
@Test
void testMockMVCPost() throws Exception {
mockMvc.perform(
MockMvcRequestBuilders.post("/updateUser") //发送get请求
.accept(MediaType.APPLICATION_JSON) //设置响应的文本类型
.contentType(MediaType.APPLICATION_JSON_UTF8)//设置请求的文本类型
.content("{\"name\":\"lisi\",\"age\":20}")
).andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("$.name").value("lisi"))//断言
.andDo(MockMvcResultHandlers.print());
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律