@PostMapping这个怎么写testcase
时间: 2023-05-30 16:07:12 浏览: 49
假设你的后端使用 Spring Boot 框架来实现 API 接口,其中有一个 `POST` 请求接口,使用 `@PostMapping` 注解来标识,那么下面是一个简单的测试用例:
```java
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.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
@SpringBootTest
@AutoConfigureMockMvc
public class MyControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void should_create_something() throws Exception {
// 构造请求体参数
String requestBody = "{\"name\": \"test\", \"age\": 18}";
// 发送 POST 请求,并验证返回结果
mockMvc.perform(MockMvcRequestBuilders.post("/api/something")
.contentType(MediaType.APPLICATION_JSON)
.content(requestBody))
.andExpect(MockMvcResultMatchers.status().isCreated())
.andExpect(MockMvcResultMatchers.jsonPath("$.id").isNumber())
.andExpect(MockMvcResultMatchers.jsonPath("$.name").value("test"))
.andExpect(MockMvcResultMatchers.jsonPath("$.age").value(18));
}
}
```
上述测试用例中,我们使用了 `MockMvc` 对象来模拟发送 HTTP 请求,并验证返回结果。其中,`MockMvcRequestBuilders.post()` 方法用来构造 `POST` 请求,`.contentType()` 方法指定请求体类型,`.content()` 方法设置请求体参数,`.andExpect()` 方法用来验证返回结果的 HTTP 状态码和 JSON 字段值。具体的验证方法可以参考 Spring 官方文档中的说明。