Spring MockMvc:如何在初始化测试时访问请求对象
Spring MockMvc: How to access Request Object while initializing test
我需要访问我的 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 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);
}
...
})
(很想知道是否有更好的方法。)
我需要访问我的 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 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);
}
...
})
(很想知道是否有更好的方法。)