0

我正在尝试在 InterceptorHandler 中注入一个模拟,但我可以配置它。

我有一个这样的拦截器:

public class MyInterceptor extends HandlerInterceptorAdapter{

    @Autowired
    private Service service;

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {

        // ... 
        service.findOne(...);
    }

}

我的测试看起来像这样:

protected MockMvc mockMvc;

@MockBean
protected Service service;

...

when(service.findOne(anyString()))
    .thenReturn(null);
mockMvc.perform(put("somepath")
    .andExpect(status().isOk());

拦截器工作正常,但是当我调试时,我看到拦截器中的服务为空,所以我想知道是否有办法模拟服务?

感谢提前。

4

1 回答 1

0

你是如何注释你的测试类的?您可能需要将测试类注释为可管理的对象,以便可以构造模拟服务

于 2017-08-04T01:25:36.847 回答