2017-08-04 8 views
0

Ich versuche, einen Spott in einen InterceptorHandler zu injizieren, aber ich konnte es konfigurieren.Inject zu einem InterceptorHandler injizieren

Ich habe eine Interceptor wie folgt aus:

public class MyInterceptor extends HandlerInterceptorAdapter{ 

    @Autowired 
    private Service service; 

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

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

} 

und mein Test sieht wie folgt aus:

protected MockMvc mockMvc; 

@MockBean 
protected Service service; 

... 

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

Der Interceptor funktioniert gut, aber wenn ich Debuggen bin, ich sehe, dass Service null ist, im Abfangjäger, also möchte ich wissen, ob es einen Weg gibt, den Dienst zu verspotten?

Danke für den Fortschritt.

Antwort

0

Wie kommentieren Sie Ihre Testklasse? Möglicherweise müssen Sie Ihre Testklasse als verwaltbares Objekt annotieren, damit der mokierte Dienst erstellt werden kann.

+0

Dies sind die Anmerkungen, die ich in der Testklasse verwende. @RunWith (SpringRunner.class) @WebMvcTest (Controller = {...}) – MinMiguelM

Verwandte Themen