我需要访问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 不要责怪我使用静态方法。这是第三方代码!
答案 0 :(得分:2)
我使用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);
}
...
})
(很想知道是否有更好的方法。)