【问题标题】:Spring MockMvc: How to access Request Object while initializing testSpring MockMvc:如何在初始化测试时访问请求对象
【发布时间】:2017-05-30 10:51:29
【问题描述】:

我需要访问我的 mockMvc 的请求进行初始化。

@Before
public void setup() {
  this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac.build());

  // TODO how to get request out of mockMvc?
  request = ???      

  SomeUtils.init(request)
}

@Test
public void test() throws Exception {   
  final ResultActions result = this.mockMvc.perform(uri);
}

我尝试使用自己的 RequestBuilder。但这不起作用。如果您认为这是正确的解决方案,我可以提供更多详细信息。

... .defaultRequest(new RequestBuilder() { ...

PS 不要怪我使用静态方法。这是第三方代码!

【问题讨论】:

    标签: spring-test-mvc


    【解决方案1】:

    我使用的是 Spring 3,因此您的使用范围可能会有所不同,但我最终通过创建自定义 javax.servlet.Filter 并使用 addFilter 方法将其添加到 MockMvcBuilders 对象来做到这一点。

     .addFilter(new Filter() {
            public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
              SomeUtils.init(request)
              chain.doFilter(request, response);
            }
            ...
          })
    

    (很想知道是否有更好的方法。)

    【讨论】:

      猜你喜欢
      • 2014-11-10
      • 2017-10-28
      • 2017-01-17
      • 2018-05-22
      • 2018-05-25
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      相关资源
      最近更新 更多