Spring mockmvc测试和拦截器

时间:2015-04-03 17:51:54

标签: spring unit-testing mockmvc

我最初实现了一个控制器来处理OPTIONS请求,并将CORS所需的头应用于响应。最近我一直在清理代码并为CORS创建了拦截器。部分清理将是删除OPTIONS请求的控制器方法。

但是,我的mockmvc测试需要OPTIONS处理方法,而当我实际运行app时,拦截器链处理OPTIONS请求,即使OPTIONS请求没有控制器方法。

我希望像这样的测试

MockHttpServletRequestBuilder optionsRequest = options("the-url");

this.mockMvc.perform(optionsRequest).
    andExpect(status().isOk()).
    andExpect(header().string("Access-Control-Allow-Origin", "*")).
    andExpect(header().string("Access-Control-Allow-Methods", "OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT")).
    andExpect(header().string("Access-Control-Allow-Headers", "content-type"));
如果我的测试设置有

,则传递

StandaloneMockMvcBuilder builder = MockMvcBuilders.standaloneSetup(this.controller);
builder = builder.dispatchOptions(true);
builder = builder.addInterceptors(new CorsInterceptor());

或者我希望我不会看到正在运行的应用程序上的交叉来源请求。

0 个答案:

没有答案