Red de conocimiento informático - Material del sitio web - Cómo probar la API Spring Restful

Cómo probar la API Spring Restful

Primero, agregue bibliotecas que faciliten las pruebas web de Spring al código de prueba de su proyecto

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