Есть ли в любом случае получить фактический объект запроса, который mock Mvc будет использовать при выполнении: mock Mvc .perform (RequestBuilder requestBuilder)
Я знаю, что могу построить запрос Я сам (т.е.)
Integer id = new Integer(1);
MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/myPath").param(Constants.ACTION, Constants.GET_DETAIL)
.param(Constants.ID, id.toString());
MockHttpServletRequest request = requestBuilder.buildRequest(wac.getServletContext());
, но я не могу передать этот запрос, так как метод mock Mvc .perform специально принимает только конструктор, который создаст новый экземпляр MockHttpServletRequest. Я использую EasyMock, который использует equals () в своих сопоставителях (по крайней мере по умолчанию), и из-за отсутствия реализации equals () в MockHttpServletRequest он просто сравнивает идентификаторы объектов. то есть
EasyMock.reset(localeHelper);
localeHelper.getLocale(request);
EasyMock.expectLastCall().andReturn(locale);
/* this matcher will always fail because the request object is rebuilt by the mockMvc.perform(requestBuilder) call
and MockHttpServletRequest does not have an equals() method that these mocking tools can fall back on for object equivalency */
EasyMock.replay(localeHelper);