Cómo probar la API Spring Restful
Código Gradle
testCompile(
"org.springframework:spring-test:$springVersion ",
"org.springframework.ws:spring-ws-test:2.1.0.RELEASE",
"javax.servlet:javax.servlet-api :3.0.1 ",
"com.jayway.jsonpath.json-path-assert: 0.9.0"
)
Depende de la biblioteca jsonpath, para mejorar afirmar datos en formato json.
Luego, escriba el código de prueba
Código Java
// Especifique el uso de la prueba SpringIntegration y especifique el ApplicationContext utilizado para ejecutar la prueba
@RunWith(SpringJUnit4ClassRunner. class)
@ContextConfiguration(locations = {"classpath: spring-servlet.xml"})
clase pública ApiControllerIntegrationTest {
@ Autowired
controlador ApiController privado
MockMvc privado mockMvc
@Before
public void setUp() lanza una excepción {
// Vincula el controlador que se va a probar a MockMvcshang
mockMvc = MockMvcBuilders.standaloneSetup(controller).build()
}
@; Prueba
public void testGet() throws Exception {
// Realiza una solicitud en la que puedes configurar un .xianlinbox.api.ApiController
Método = public com.xianlinbox.api.Request com.xianlinbox.api.ApiController.post(java.lang.String, java.lang.String)
Asíncrono:
Se inició asíncrono = false
Resultado asíncrono = nulo
Excepción resuelta:
Tipo = nulo
ModelAndView:
Nombre de vista = nulo
p>Vista = nulo
Modelo = nulo
Modelo = nulo
FlashMap:
MockHttpServletResponse:
Estado = 201
Mensaje de error = nulo
Encabezado = {Content-Type=[application/json;charset=UTF-8]}
Content-Type= aplicación/json; charset=UTF-8
Cuerpo = {"userId": "xianlinbox", "requestId": "1", "requestType": "POST", "mensaje" ": "este es el mensaje"}
URL de reenvío = nulo
URL de redireccionamiento = nulo
Cocinar
ies = []
Ahora que hemos visto la prueba, echemos un vistazo rápido a los detalles.
Código Java
@Controller
clase pública ApiController {
@RequestMapping(value = "/requests/{requestId}" , método = RequestMethod.GET)
@ResponseBody
solicitud pública get(@PathVariable String requestId, @RequestParam(value = "userId") String userId) {
devolver nueva Solicitud(userId, requestId, "GET");
}
@RequestMapping(value = "/request/{requestId}" , método = RequestMethod.
@RequestMapping(valor = "/solicitudes", método = RequestMethod.POST)
@ResponseBody
@ResponseStatus(valor = HttpStatus.CREADO)
public Request post(@RequestParam( value = "userId") String userId, @RequestBody String content) {
Solicitud de solicitud = new Request(userId, "1", "POST"); p>
p>
solicitud.
}
Utilice RequestMapping para definir la URL
Utilice @ResponseBody para devolver json
Utilice @PathVariable para obtener los parámetros de ruta
Utilice @RequestParam para obtener los parámetros en la carga útil de la solicitud
Utilice @RequestBody para obtener el cuerpo de la solicitud
Utilice @ResponseStatus(value = HttpStatus.CREATED) para definir el código de estado HTTP devuelto