Ich habe einen Unit-Test heraus zu tragen auf der Grundlage der folgenden Methode:Feder Unit-Test: Illegal für MultipartHttpServletRequest
@RequestMapping(value = "/query")
public class QueryController {
...
@RequestMapping(value = "/att/handle", method = RequestMethod.POST)
public @ResponseBody
String handleUpload(MultipartHttpServletRequest request, HttpServletResponse response) throws IOException {
JsonResponseDto responseDto = null;
HashMap<Long, String> attachmentInfoMap = null;
String licNo = request.getParameter("licNo");
String queId = request.getParameter("queId");
....
Bitte meine Unit-Test zu finden unter:
@RunWith(PowerMockRunner.class)
public class QueryControllerTest {
@InjectMocks
private QueryController queryController;
private MockMvc mockMvc;
private MockMultipartHttpServletRequest request;
private MockHttpServletResponse response;
private MockHttpSession session;
@Before
public void setup() {
request = new MockMultipartHttpServletRequest();
request.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, new FlashMap());
response = new MockHttpServletResponse();
session = new MockHttpSession();
request.setSession(session);
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request));
//Added viewResolver to prevent circular view path error
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/jsp/");
viewResolver.setSuffix(".jsp");
this.mockMvc = MockMvcBuilders.standaloneSetup(queryController).setViewResolvers(viewResolver).build();
}
@Test
public void handleUploadQueryAttachmentsOK() throws Exception {
mockMvc.perform(post("/query/att/handle").param("queId", "123").param("licNo", "12"))
.andExpect(status().isFound()
);
}
Wenn ich das Gerät ausführen Test der folgende Fehler wird angezeigt:
Irgendeine Idee, wie ich das oben genannte erro lösen kann r Nachricht bitte?
Durch den Test korrekt einrichten. Sie fordern, Antwort und Sitzung sind nutzlos. Diese werden nicht verwendet, dasselbe gilt für das Setup, das Sie tun. In deinem '@ Before' solltest du nur das' MockMvc' einrichten und das wars. Als nächstes ist Ihre Anfrage fehlerhaft, da es sich um einen einfachen Beitrag und nicht um einen mehrteiligen Beitrag handelt. Sie sollten den Inhaltstyp ändern. –
Wollen Sie wirklich die Datei hochladen oder einfach nur zwei Anfrageparameter "licNo" und "queId" senden? Ich habe im Test keinen Datei-Upload-Code gefunden. – Braj