2011-06-04 17 views
5

Me gustaría probar mi servidor REST con JUnit. Cada prueba envía una solicitud HTTP al servidor y verifica la respuesta contra la lista de los elementos que se espera que aparezcan en la respuesta.Servidor de prueba con JUnit

Por lo tanto, el procedimiento de prueba es el siguiente:

 
for each request in test requests 
    send request and receive response 
    assert the response is ok 
    for each element in the expected elements 
     test if the element exists in the response

¿Cómo poner en práctica con JUnit?

Respuesta

6

Usaría el método @BeforeClass en su clase JUnit para tomar la última versión de su servidor y arrancarlo (eligiendo un puerto apropiado, etc.). De manera similar, @AfterClass se podría usar para apagar el servidor mediante programación. Hacer esto automáticamente es importante ya que de lo contrario tendrá que recordar tener la última versión de su servidor funcionando continuamente.

Supongo que las pruebas no cambian ningún dato en el servidor. Si lo hacen, entonces probablemente deberías usar @Before y @After, pero ten en cuenta que esto hará que el servidor se inicie/se detenga para cada prueba y que las pruebas tarden un tiempo irrazonablemente largo.

Una vez que tenga ese marco en su lugar, escribir la prueba en sí debería ser simple.

También podría escribir esto como una prueba de unidad "correcta" al asegurarse de que su API RESTful esté expuesta como una simple API de Java, aislada de la capa de red. Esto sería mucho más rápido de ejecutar y (con suerte, si su capa de red es lo suficientemente delgada) recoger muchos de los mismos errores posibles.

+2

para ser aún más selectivo: el OP ciertamente no mencionó que lo que quería hacer era una * "prueba de unidad" *. Acaba de mencionar JUnit, que puede usarse tanto para pruebas unitarias como para otro tipo de pruebas :) – SyntaxT3rr0r

+1

Buen punto, me he deshecho de eso –

Cuestiones relacionadas