Solución:
Utilizo TestNG para mis pruebas unitarias. Pero en Spring Test Framework ambos se ven similares. Entonces creo que tu prueba será como la siguiente
@Test
public void testAlertFilterView() throws Exception {
this.mockMvc.perform(get("/getServerAlertFilters/v2v2v2/").
.andExpect(status().isOk())
.andExpect(content().json("{'data':[{'useRegEx':'false','hosts':'v2v2v2'}]}"));
}
Si desea verificar la clave json y el valor, puede usar jsonpath
.andExpect(jsonPath("$.yourKeyValue", is("WhatYouExpect")));
Puedes encontrar esocontent().json()
no se pueden resolver por favor agregue
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
los 406 Not Acceptable
El código de estado significa que Spring no pudo convertir el objeto a json. Puede hacer que su método de controlador devuelva una Cadena y haga return json.toString();
o configura el tuyo propio HandlerMethodReturnValueHandler
. Verifique esta pregunta similar Devolviendo JsonObject usando @ResponseBody en SpringMVC
Puede probar lo siguiente para obtener y publicar métodos
@Autowired
private MuffinRepository muffinRepository;
@Test
public void testgetMethod throws Exception(){
Muffin muffin = new Muffin("Butterscotch");
muffin.setId(1L);
BddMockito.given(muffinRepository.findOne(1L)).
willReturn(muffin);
mockMvc.perform(MockMvcRequestBuilders.
get("/muffins/1")).
andExpect(MockMvcResutMatchers.status().isOk()).
andExpect(MockMvcResutMatchers.content().string("{"id":1, "flavor":"Butterscotch"}"));
}
//Test to do post operation
@Test
public void testgetMethod throws Exception(){
Muffin muffin = new Muffin("Butterscotch");
muffin.setId(1L);
BddMockito.given(muffinRepository.findOne(1L)).
willReturn(muffin);
mockMvc.perform(MockMvcRequestBuilders.
post("/muffins")
.content(convertObjectToJsonString(muffin))
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResutMatchers.status().isCreated())
.andExpect(MockMvcResutMatchers.content().json(convertObjectToJsonString(muffin)));
}
Si la respuesta está vacía, asegúrese de anular equals()
y hashCode()
métodos en el Entity
su repositorio está trabajando con:
//Converts Object to Json String
private String convertObjectToJsonString(Muffin muffin) throws JsonProcessingException{
ObjectWriter writer = new ObjectWriter().writer().withDefaultPrettyPrinter();
return writer.writeValueAsString(muffin);
}