Les essais du Printemps @RequestBody à l'aide de Printemps MockMVC

Je suis en train de tester une méthode qui affiche un objet de la base de données à l'aide du Printemps MockMVC cadre. J'ai construit le test comme suit:

@Test
public void testInsertObject() throws Exception { 

    String url = BASE_URL + "/object";

    ObjectBean anObject = new ObjectBean();
    anObject.setObjectId("33");
    anObject.setUserId("4268321");
    //... more

    Gson gson = new Gson();
    String json = gson.toJson(anObject);

    MvcResult result = this.mockMvc.perform(
            post(url)
            .contentType(MediaType.APPLICATION_JSON)
            .content(json))
            .andExpect(status().isOk())
            .andReturn();
}

La méthode que je suis en essais utilise du Printemps @RequestBody pour recevoir le ObjectBean, mais le test renvoie toujours une erreur 400.

@ResponseBody
@RequestMapping(    consumes="application/json",
                    produces="application/json",
                    method=RequestMethod.POST,
                    value="/object")
public ObjectResponse insertObject(@RequestBody ObjectBean bean){

    this.photonetService.insertObject(bean);

    ObjectResponse response = new ObjectResponse();
    response.setObject(bean);

    return response;
}

Le json créé par gson dans le test:

{
   "objectId":"33",
   "userId":"4268321",
   //... many more
}

La ObjectBean classe

public class ObjectBean {

private String objectId;
private String userId;
//... many more

public String getObjectId() {
    return objectId;
}

public void setObjectId(String objectId) {
    this.objectId = objectId;
}

public String getUserId() {
    return userId;
}

public void setUserId(String userId) {
    this.userId = userId;
}
//... many more
}

Donc ma question est: comment puis-je tester cette méthode à l'aide de Printemps MockMVC?

  • Vous devrez poster à la classe réelle. Avec un 400, Printemps, ne parvient pas à convertir votre corps de la requête à un ObjectBean objet.
  • Grâce Sotirios, c'est un format de date question, je suis dans la recherche. Je suis de passage java.util Date et gson ne l'aime pas.
  • Salut Sotirios. Ouais, malheureusement, ce problème persiste! J'ai posé une question concernant le format de date ici: stackoverflow.com/questions/20509883/mysql-insert-gson-date
  • Quel est le type du champ de date dans la ObjectBean classe? java.util.Date, java.util.Calendar, ou String? Ou une autre?
  • java.util.Date.
InformationsquelleAutor Matt | 2013-12-10