【发布时间】:2021-05-17 09:09:11
【问题描述】:
所以我在 Spring Boot 中进行了第一次测试,但遇到了一个问题。当我执行测试时,这些值实际上被删除了。我更愿意对此进行模拟,以免删除这些值。
我的测试班: @SpringBootTest @AutoConfigureMockMvc
公共类 PartyEndpointTest {
@Autowired
private MockMvc mockMvc;
@Test
@DisplayName("Should Not give access to endpoint")
public void ShouldNotGiveAccess() throws Exception{
mockMvc.perform(MockMvcRequestBuilders.get("/parties"))
.andExpect(MockMvcResultMatchers.status().is(401));
}
@Test
@WithMockUser("JLardinois")
@DisplayName("Should respond with not found request")//is 401 because first authorized then check if its found
public void shouldNotFindRequest() throws Exception{
mockMvc.perform(MockMvcRequestBuilders.get("/partyy")).andExpect(MockMvcResultMatchers
.status().is(404));
}
@Test
@WithMockUser("JLardinois")
public void ShouldFindRequest() throws Exception{
mockMvc.perform(MockMvcRequestBuilders.get("/parties")).andExpect(MockMvcResultMatchers
.status().isOk());
}
@Test
@WithMockUser("JLardinois")
public void DeleteParty() throws Exception{
mockMvc.perform(MockMvcRequestBuilders.delete("/parties/4")).andExpect(MockMvcResultMatchers
.status().isOk());
}
在这个测试类中,我的控制器中的删除方法得到了测试,但是当我运行它时,我的数据库中 ID 为 4 的实体被删除了。我不想要这个。 任何人都可以帮助我如何模拟这个,以便我的数据库中没有任何内容被删除? 提前致谢!
【问题讨论】:
-
请包含你的整个测试,你可能会在你的系统上运行你的测试以及各种注入的依赖项,而不是仅仅使用控制器和其他所有模拟
-
@Smutje 我上传了!
标签: java spring-boot unit-testing spring-test