2016-09-28 4 views
0

Im Frühling verwenden, und in meiner Controller-Methode im einer Abfrage parametherMock-Server anfordern

@RequestMapping(method = RequestMethod.GET) 
    public MyClass myMethod(
      @ApiParam(defaultValue = "some string", value = "some text") @RequestParam("myParam") MyClass2 myParam) { 
      //do something 
     } 

jetzt in JUnit-Test ich diese Methode aufgerufen werden soll, für diesen erwartet ich eine Anfrage prepeared habe, kann ich aber nicht finden sie eine richtige Art und Weise zu setQueryString()

MockHttpServletRequest request = new MockHttpServletRequest(); 
request.setRequestURI("/pathToMyMethod"); 
request.setQueryString(new MyClass2().toString()); 

ein neues Objekt Constructing und ruft toString() auf es funktioniert nicht. (Aufruf leeren Konstruktor wird Objekt mit zufälligen Werten erstellen)

Failure Spur: org.springframework.web.bind.MissingServletRequestParameterException: Required MyClass2 parameter 'myParam' is not present.

Wie man richtig eine solche Anfrage erstellen?

Antwort

2

Verwenden Sie MockMvc.

mockMvc.perform(get("/").param("myParam", "paramValue")) 
    .andExpect(status().isOk()); 
+0

ich versuche, auf diese Weise, aber es gibt Fehler '' Die Methode params (String, String) für den Typ nicht definiert ist ResultActions'' –

+0

Oops. Mein Fehler. 'param' wird nach' get ("/") aufgerufen. –

+1

danke, das funktioniert super! –