以下是关于使用MockMvc进行controller层单元测试的完整攻略,包含两个示例说明:
1. 添加依赖
首先,您需要在项目的pom.xml文件中添加MockMvc和JUnit的依赖。示例:
<dependencies>
<!-- 添加MockMvc依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 添加JUnit依赖 -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2. 编写测试类
创建一个测试类,并使用@RunWith(SpringRunner.class)
和@SpringBootTest
注解标记。示例:
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void testGetUser() throws Exception {
// 模拟GET请求
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请求
mockMvc.perform(MockMvcRequestBuilders.post(\"/users\")
.contentType(MediaType.APPLICATION_JSON)
.content(\"{\\\"name\\\":\\\"Jane Smith\\\"}\"))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath(\"$.name\").value(\"Jane Smith\"));
}
}
以上是使用MockMvc进行controller层单元测试的完整攻略,包含两个示例说明。请根据您的实际需求和项目配置,适当调整和扩展这些步骤。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用MockMvc进行controller层单元测试 事务自动回滚的完整案例 - Python技术站