MockMvc是Spring Framework提供的一个用于模拟HTTP请求的测试工具。它可以模拟发送HTTP请求,并对返回结果进行断言和验证。下面是使用MockMvc测试函数的步骤:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
UserControllerTest
。@RunWith(SpringRunner.class)
注解标记测试类,并使用@WebMvcTest(UserController.class)
注解标记需要测试的控制器类。@Autowired
注解将MockMvc
对象注入到测试类中。@Test
注解标记测试方法,并在方法中使用MockMvc
对象发送HTTP请求并进行断言和验证。下面是一个示例:
@RunWith(SpringRunner.class)
@WebMvcTest(UserController.class)
public class UserControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void testGetUser() throws Exception {
// 发送GET请求并断言返回状态码为200
mockMvc.perform(MockMvcRequestBuilders.get("/users/{id}", 1))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("$.id").value(1))
.andExpect(MockMvcResultMatchers.jsonPath("$.name").value("John Doe"));
}
@Test
public void testCreateUser() throws Exception {
// 发送POST请求并断言返回状态码为201
mockMvc.perform(MockMvcRequestBuilders.post("/users")
.contentType(MediaType.APPLICATION_JSON)
.content("{\"name\":\"Jane Smith\"}"))
.andExpect(MockMvcResultMatchers.status().isCreated());
}
}
在上述示例中,testGetUser
方法测试了一个GET请求,断言返回的JSON数据中id为1,name为"John Doe";testCreateUser
方法测试了一个POST请求,断言返回的状态码为201。
以上是使用MockMvc测试函数的基本步骤。在实际应用中,可以根据具体的业务需求编写更多的测试方法,并使用MockMvc提供的各种断言和验证方法进行测试。
领取专属 10元无门槛券
手把手带您无忧上云