【问题标题】:Inject mock to an InterceptorHandler将模拟注入到 InterceptorHandler
【发布时间】:2018-01-11 19:21:26
【问题描述】:

我正在尝试在 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());

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

感谢您的提前。

【问题讨论】:

    标签: spring spring-test spring-test-mvc springmockito


    【解决方案1】:

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

    【讨论】:

    • 这些是我在测试类中使用的注解。 @RunWith(SpringRunner.class) @WebMvcTest(controllers={...})
    猜你喜欢
    • 2013-01-24
    • 2011-11-13
    • 1970-01-01
    • 2017-07-03
    • 2020-08-11
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多