Spring Mock MVC
O Mock MVC serve para Indicar ao Spring que a classe anotada com @WebMvcTest
deve ser tratado como uma classe de teste.
@RunWith(SpringRunner.class)
@WebMvcTest(SoldierController.class)
public class SoldierControllerTest {}
Nota
@WebMvcTest()
: subir apenas o contexto necessário para a execução do teste (+ performático)
Exemplo de Implementação do teste
mockMvc.perform(
MockMvcRequestBuilders.get("/api/v1/soldiers/1")
.header("meu_header", "")
.contentType(MediaType.APPLICATION_JSON)
)
.andExpect(
MockMvcResultMatchers
.header()
.string("Content-Type", "application/json;charset-UTF-8")
)
.andExpect(
MockMvcResultMatchers
.status()
.isOk()
)
.andExpect(
MockMvcResultMatchers
.content()
.json(jsonOutString)
);
}