Comment vérifier JSON dans le corps de la réponse avec mockMvc

C'est ma méthode à l'intérieur de mon contrôleur qui est annoté par @Controller

@RequestMapping(value = "/getServerAlertFilters/{serverName}/", produces = "application/json; charset=utf-8")
    @ResponseBody
    public JSONObject getServerAlertFilters(@PathVariable String serverName) {
        JSONObject json = new JSONObject();
        List<FilterVO> filteredAlerts = alertFilterService.getAlertFilters(serverName, "");
        JSONArray jsonArray = new JSONArray();
        jsonArray.addAll(filteredAlerts);
        json.put(SelfServiceConstants.DATA, jsonArray);
        return json;
    }

Je suis dans l'attente d' {"data":[{"useRegEx":"false","hosts":"v2v2v2"}]} que mon json.

Et c'est mon test JUnit:

@Test
    public final void testAlertFilterView() {       
        try {           
            MvcResult result = this.mockMvc.perform(get("/getServerAlertFilters/v2v2v2/").session(session)
                    .accept("application/json"))
                    .andDo(print()).andReturn();
            String content = result.getResponse().getContentAsString();
            LOG.info(content);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Ici est la sortie de la console:

MockHttpServletResponse:
              Status = 406
       Error message = null
             Headers = {}
        Content type = null
                Body = 
       Forwarded URL = null
      Redirected URL = null
             Cookies = []

Même result.getResponse().getContentAsString() est une chaîne vide.

Quelqu'un peut s'il vous plaît suggérer comment obtenir mon JSON dans mon test JUnit méthode pour que je puisse compléter mon cas de test.

OriginalL'auteur Zeeshan | 2015-05-27