2017-08-04 61 views
0

我想在InterceptorHandler中注入模拟,但我可以配置它。注入模拟到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()); 

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

感谢您的提前。

回答

0

你怎么注释你的测试类?您可能需要将测试类注释为可管理对象,以便构建模拟服务

+0

这些是我在测试类中使用的注释。 @RunWith(SpringRunner.class) @WebMvcTest(controllers = {...}) – MinMiguelM