spring webMvc测试未调用错误处理程序

vsaztqbk  于 2022-11-21  发布在  Spring
关注(0)|答案(1)|浏览(94)

我正在尝试为我的控制器编写集成测试。
异常处理程序作为依赖项的一部分存在于库中。但我的webMvc测试无法调用该处理程序
方法引发异常

@WebMvcTest(controllers = MyController.class, excludeAutoConfiguration = {
    SecurityAutoConfiguration.class})
@ExtendWith(SpringExtension.class)
public class WebMockTest {

  @Autowired
  private MockMvc mockMvc;

  @MockBean
  private MyService service;

  
  @Test
  public void shall_make_get_call_404_not_ok() throws Exception {
    when(service.getById(any())).thenThrow(new CustomException("Not found"));
    this.mockMvc.perform(get("/items/" + "12")).andDo(print())
        .andExpect(status().isNotFound());

  }
}

在这里,我无法获得响应,但测试方法抛出了异常。
如何触发异常处理程序我。

cbeh67ev

cbeh67ev1#

您需要添加@Import(异常处理程序.类)。
我描述了一个类似的问题,当使用@WebMvcTest与特定的控制器和它的解决方案在这里:https://stackoverflow.com/a/74191408/7789681

相关问题