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)
	);
}

Referências